numpy.quantile

numpy.quantile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear', keepdims=False)[源代码]

沿指定轴计算数据的第Q个分位数。

1.15.0 新版功能.

参数
aarray_like

可以转换为数组的输入数组或对象。

q浮点数数组

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

axisint,int的元组,none,可选

计算分位数的轴。默认值是沿着数组的扁平版本计算分位数。

outndarray,可选

用于放置结果的可选输出数组。它必须具有与预期输出相同的形状和缓冲区长度,但如果需要,将强制转换(输出的)类型。

overwrite_input可选的布尔

如果为真,则允许输入数组 a 通过中间计算进行修改,以节省内存。在这种情况下,输入的内容 a 此函数完成后未定义。

interpolation'线性'、'低'、'高'、'中点'、'最近'

此可选参数指定当所需分位数位于两个数据点之间时要使用的插值方法。 i < j

  • 线性的: i + (j - i) * fraction 在哪里 fraction 索引的小数部分是否被 ij .

  • 下: i .

  • 较高的: j .

  • 最近的: ij ,以最近者为准。

  • 中点: (i + j) / 2 .

keepdims可选的布尔

如果设置为“真”,则缩小的轴将保留在结果中,作为尺寸为1的尺寸。使用此选项,结果将针对原始数组正确广播 a .

返回
quantile标量或ndarray

如果 q 是单个分位数, axis=None ,则结果是一个标量。如果给出了多个分位数,则结果的第一个轴对应于分位数。其他轴是在减少 a . 如果输入包含小于 float64 ,输出数据类型为 float64 . 否则,输出数据类型与输入数据类型相同。如果 out 则返回该数组。

参见

mean
percentile

相当于分位数,但Q在范围内 [0, 100] .

median

相当于 quantile(..., 0.5)

nanquantile

笔记

给定向量 V 长度的 N ,的第q个分位数 V 是价值 q 从最小值到最大值的排序方式 V . 两个最近邻的值和距离以及 interpolation 如果标准化排名与 q 确切地。此函数与中值if相同 q=0.5 ,与最小的if相同 q=0.0 与最大值相同,如果 q=1.0 .

实例

>>> a = np.array([[10, 7, 4], [3, 2, 1]])
>>> a
array([[10,  7,  4],
       [ 3,  2,  1]])
>>> np.quantile(a, 0.5)
3.5
>>> np.quantile(a, 0.5, axis=0)
array([6.5, 4.5, 2.5])
>>> np.quantile(a, 0.5, axis=1)
array([7.,  2.])
>>> np.quantile(a, 0.5, axis=1, keepdims=True)
array([[7.],
       [2.]])
>>> m = np.quantile(a, 0.5, axis=0)
>>> out = np.zeros_like(m)
>>> np.quantile(a, 0.5, axis=0, out=out)
array([6.5, 4.5, 2.5])
>>> m
array([6.5, 4.5, 2.5])
>>> b = a.copy()
>>> np.quantile(b, 0.5, axis=1, overwrite_input=True)
array([7.,  2.])
>>> assert not np.all(a == b)