np.percentile()函数解析

函数:     

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,为真时取中位数的那个轴将保留在结果中

        在python中计算一个多维数组的任意百分比分位数,此处的百分位是从小到大排列。百分位数是统计中使用的度量,表示小于这个值的观察值占总数q的百分比。

        首先明确百分位数的概念:第q个百分位数是这样一个值,它使得至少有q%的数据项小于或等于这个值,且至少有(100-q)%的数据项大于或等于这个值。

        举个例子:高等院校的入学考试成绩经常以百分位数的形式报告。比如,假设某个考生在入学考试中的语文部分的原始分数为54分。相对于参加同一考试的其他学生来说,他的成绩如何并不容易知道。但是如果原始分数54分恰好对应的是第70百分位数,我们就能知道大约70%的学生的考分比他低,而约30%的学生考分比他高。这里q = 70。

>>> a = range(1,101)
#求取a数列第90%分位的数值
>>> np.percentile(a, 90)
90.10000000000001

>>> a = range(101,1,-1)
#百分位是从小到大排列
>>> np.percentile(a, 90)
91.10000000000001

官方文档示例:

>>>a = np.array([[10, 7, 4], [3, 2, 1]])
>>>a
array([[10,  7,  4],
       [ 3,  2,  1]])
>>>np.percentile(a, 50)
3.5
>>>np.percentile(a, 50, axis=0)
array([[ 6.5,  4.5,  2.5]])
>>>np.percentile(a, 50, axis=1)
array([ 7.,  2.])
>>>np.percentile(a, 50, axis=1, keepdims=True)
array([[ 7.],
       [ 2.]])

 

 
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值