当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python NumPy quantile方法用法及代码示例


Numpy 的 quantile(~) 方法返回指定分位数处的插值。请注意,此方法与 percentile(~) 完全相同,只是 quantile(~) 方法采用 0 到 1 之间的值,而不是 0 到 100。

参数

1. a | array-like

输入数组。

2. q | array-likefloat

要计算的所需分位数,必须介于 0(含)和 1(含)之间。

3. axis | Noneint | optional

计算百分位数所沿的轴。对于二维数组,允许的值如下:

意义

0

按列计算分位数

1

按行计算分位数

None

计算展平输入数组的百分位

默认情况下,axis=None

4. out | Numpy array | optional

您可以将计算结果放入 out 指定的数组中,而不是创建新数组。

5. overwrite_input | boolean | optional

是否将中间计算保存到输入数组a。这会节省内存空间,但也会使 a 的内容未定义。默认情况下,overwrite_input=False

6. interpolation | string | optional

当给定百分位数位于两个 data-points 之间时,如何对值进行插值,例如 ij,其中 i<j

意义

linear

标准线性插补

lower

返回i

higher

返回j

midpoint

返回(i+j)/2

nearest

返回 ij ,以较接近者为准。

默认情况下,interpolation="linear"

返回值

如果 q 是标量,则返回标量。否则,返回一个 Numpy 数组。

例子

计算单个百分位数

要获取 0.5 分位数处的值:

a = np.array([5,6,7,8,9])
np.quantile(a, 0.5)



7.0

计算多个百分位数

要获取第 50 个和第 75 个百分位数的值:

a = np.array([5,6,7,8,9])
np.quantile(a, [0.5, 0.75])



array([7., 8.])

更改插值方法

线性

考虑指定分位数对应的值不存在的情况:

a = np.array([5,6,7,8,9])
np.quantile(a, 0.45)   # interpolation="linear"



6.800000000000001

这里,由于数组中不存在第 45 个百分位数对应的值,因此该值在 6 和 7 之间线性插值。

降低
a = np.array([5,6,7,8,9])
np.quantile(a, 0.45, interpolation="lower")



6

同样,由于 45% 分位数不存在,我们需要执行插值。我们知道它在值 6 和 7 之间。通过传入 "lower" ,我们选择较低的值,即本例中的 6。

更高
a = np.array([5,6,7,8,9])
np.quantile(a, 0.45, interpolation="higher")



7

"lower" 相同的逻辑,但我们采用较高的值。

最近的
a = np.array([5,6,7,8,9])
np.quantile(a, 0.45, interpolation="nearest")



7

通过传入"nearest",我们不再总是选择较低或较高的值,而是采用最接近的值。这里,从 interpolation="linear" 的输出来看,我们知道插值更接近 7 而不是 6。

中点
a = np.array([5,6,7,8,9])
np.quantile(a, 0.45, interpolation="midpoint")



6.5

在这里,我们只取下限值和上限值的中点,因此 (6+7)/2=6.5

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 NumPy | quantile method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。