maxframe.tensor.quantile#
- maxframe.tensor.quantile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear', keepdims=False, **kw)[源代码]#
计算沿指定轴的数据的第 q 分位数。
- 参数:
a (array_like) -- 输入张量或可以转换为张量的对象。
q (array_like of float) -- 要计算的分位数或分位数序列,必须在 0 到 1 之间(包含 0 和 1)。
axis ({int, tuple of int, None}, optional) -- 计算分位数的轴。默认情况下,沿张量的扁平化版本计算分位数。
out (Tensor, optional) -- 用于放置结果的替代输出张量。它必须与预期输出具有相同的形状和缓冲区长度,但必要时会进行类型转换。
overwrite_input (bool, optional) -- 仅用于与 Numpy 兼容,不会生效。
interpolation ({'linear', 'lower', 'higher', 'midpoint', 'nearest'}) -- 此可选参数指定当所需分位数位于两个数据点
i < j之间时使用的插值方法: * linear:i + (j - i) * fraction,其中fraction是被i和j包围的索引的小数部分。 * lower:i。 * higher:j。 * nearest:i或j,取最近的一个。 * midpoint:(i + j) / 2。keepdims (bool, optional) -- 如果设置为 True,则在结果中保留被缩减的轴作为大小为 1 的维度。使用此选项时,结果可以正确地与原始张量 a 广播。
- 返回:
quantile -- 如果 q 是单个分位数且 axis=None,则结果是一个标量。如果给出多个分位数,则结果的第一个轴对应于分位数。其余轴是 a 被缩减后保留的轴。如果输入包含小于
float64的整数或浮点数,则输出数据类型为float64。否则,输出数据类型与输入相同。如果指定了 out,则返回该张量。- 返回类型:
scalar or Tensor
备注
给定一个长度为
N的向量V,V的第 q 分位数是在V的排序副本中从最小值到最大值按q比例的距离值。如果标准化排名不完全匹配q的位置,则两个最近邻的值和距离以及 interpolation 参数将决定分位数。如果q=0.5,此函数与中位数相同;如果q=0.0,与最小值相同;如果q=1.0,与最大值相同。示例
>>> import maxframe.tensor as mt >>> a = mt.array([[10, 7, 4], [3, 2, 1]]) >>> a.execute() array([[10, 7, 4], [ 3, 2, 1]]) >>> mt.quantile(a, 0.5).execute() 3.5 >>> mt.quantile(a, 0.5, axis=0).execute() array([6.5, 4.5, 2.5]) >>> mt.quantile(a, 0.5, axis=1).execute() array([7., 2.]) >>> mt.quantile(a, 0.5, axis=1, keepdims=True).execute() array([[7.], [2.]]) >>> m = mt.quantile(a, 0.5, axis=0) >>> out = mt.zeros_like(m) >>> mt.quantile(a, 0.5, axis=0, out=out).execute() array([6.5, 4.5, 2.5]) >>> m.execute() array([6.5, 4.5, 2.5])