百分位数

将变量从小到大排序,计算相应的累计百分位,某一百分位对应的变量值为该百分位的百分位数(中位数即为50百分位数)。气候研究中计算极端事件的所用阈值法便可通过此函数实现。

1
2
import numpy as np
np.percentile(a, q, axis=None, overwrite_input=False, interpolation='linear', keepdims=False)

a : 输入数据,数组或序列;

q : [0-100]之间的浮点数,所需计算的分位;

axis : 指定计算平均的轴;

overwrite_input : 是否重写覆盖原本数据,默认为False;

interpolation : 所需分位数位于两个数据点之间时要使用的插值方法。可选:{‘linear’, ‘lower’, ‘higher’, ‘midpoint’, ‘nearest’},默认’linear’;

keepdims : 是否保留维度,如果为True,计算后减少的维度将保留1的大小,默认为False。

1
2
3
4
5
6
import numpy as np
data = np.array([[1,3,6], [7,5,3]])
print(np.percentile(data, 50))
print(np.percentile(data, 50, axis=0, interpolation='lower'))
print(np.percentile(data, 50, axis=1))
print(np.percentile(data, 50, axis=1, keepdims=True))
1
2
3
4
5
4.0
[1 3 3]
[3. 5.]
[[3.]
[5.]]