numpy.
nanpercentile
沿指定轴计算数据的qth百分位数,同时忽略NaN值。
返回数组元素的qth百分位数。
1.9.0 新版功能.
可转换为数组的输入数组或对象,其中包含要忽略的NaN值。
要计算的百分位数或百分位数序列,必须介于0和100之间(含0和100)。
计算百分位的轴。默认值是沿着数组的扁平版本计算百分位数。
用于放置结果的可选输出数组。它必须具有与预期输出相同的形状和缓冲区长度,但如果需要,将强制转换(输出的)类型。
如果为真,则允许输入数组 a 通过中间计算进行修改,以节省内存。在这种情况下,输入的内容 a 此函数完成后未定义。
此可选参数指定当所需百分比位于两个数据点之间时要使用的插值方法 i < j :
i < j
“线性”: i + (j - i) * fraction 在哪里 fraction 索引的小数部分是否被 i 和 j .
i + (j - i) * fraction
fraction
i
j
“下”: i .
“更高”: j .
“最近”: i 或 j ,以最近者为准。
“中点”: (i + j) / 2 .
(i + j) / 2
如果设置为“真”,则缩小的轴将保留在结果中,作为尺寸为1的尺寸。使用此选项,结果将针对原始数组正确广播 a .
如果这不是默认值,它将通过(在空数组的特殊情况下)传递给 mean 基础数组的函数。如果数组是子类并且 mean 没有Kwarg keepdims 这将引发运行时错误。
mean
如果 q 是一个百分位数 axis=None ,则结果是一个标量。如果给出多个百分位数,则结果的第一个轴对应于百分位数。其他轴是在减少 a . 如果输入包含小于 float64 ,输出数据类型为 float64 . 否则,输出数据类型与输入数据类型相同。如果 out 则返回该数组。
float64
参见
nanmean
nanmedian
相当于 nanpercentile(..., 50)
nanpercentile(..., 50)
percentile
median
nanquantile
相当于NanPercentile,但Q在范围内 [0, 1] .
笔记
给定向量 V 长度的 N , the q -第百分位数 V 是价值 q/100 从最小值到最大值的排序方式 V . 两个最近邻的值和距离以及 interpolation 如果标准化排名与 q 确切地。此函数与中值if相同 q=50 ,与最小的if相同 q=0 与最大值相同,如果 q=100 .
V
N
q
q/100
q=50
q=0
q=100
实例
>>> a = np.array([[10., 7., 4.], [3., 2., 1.]]) >>> a[0][1] = np.nan >>> a array([[10., nan, 4.], [ 3., 2., 1.]]) >>> np.percentile(a, 50) nan >>> np.nanpercentile(a, 50) 3.0 >>> np.nanpercentile(a, 50, axis=0) array([6.5, 2. , 2.5]) >>> np.nanpercentile(a, 50, axis=1, keepdims=True) array([[7.], [2.]]) >>> m = np.nanpercentile(a, 50, axis=0) >>> out = np.zeros_like(m) >>> np.nanpercentile(a, 50, axis=0, out=out) array([6.5, 2. , 2.5]) >>> m array([6.5, 2. , 2.5])
>>> b = a.copy() >>> np.nanpercentile(b, 50, axis=1, overwrite_input=True) array([7., 2.]) >>> assert not np.all(a==b)