import numpy as np
a = np.array([1, 2, 3, 6, 7, 11, 13])
print(1/6*100)
for index, value in enumerate(a):
print("index", index, "value", value, "percentile", index / (len(a) - 1) * 100)
percen = np.percentile(a, index / (len(a) - 1) * 100)
print(percen)
16.666666666666664
index 0 value 1 percentile 0.0
1.0
index 1 value 2 percentile 16.666666666666664
1.9999999999999998
index 2 value 3 percentile 33.33333333333333
2.9999999999999996
index 3 value 6 percentile 50.0
6.0
index 4 value 7 percentile 66.66666666666666
6.999999999999999
index 5 value 11 percentile 83.33333333333334
11.0
index 6 value 13 percentile 100.0
13.0
np.percentile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear', keepdims=False)
函数参数说明:
a : array,用来算分位数的对象,可以是多维的数组
q : 介于0-100的float,用来计算是几分位的参数,如四分之一位就是25,如要算两个位置的数就(25,75)
axis : 坐标轴的方向,一维的就不用考虑了,多维的就用这个调整计算的维度方向,取值范围0/1
out : 输出数据的存放对象,参数要与预期输出有相同的形状和缓冲区长度
overwrite_input : bool,默认False,为True时及计算直接在数组内存计算,计算后原数组无法保存
interpolation : 取值范围{'linear', 'lower', 'higher', 'midpoint', 'nearest'}
默认liner,比如取中位数,但是中位数有两个数字6和7,选不同参数来调整输出
keepdims : bool,默认False,为真时取中位数的那个轴将保留在结果中
np.percentile()函数的作用就是求百分位数,从而能够知道数字大致的分布。