找回密码
 会员注册
查看: 20|回复: 0

Python中numpy的np.percentile百分位函数详解

[复制链接]

2万

主题

0

回帖

7万

积分

超级版主

积分
71329
发表于 2024-9-5 23:43:43 | 显示全部楼层 |阅读模式
1、什么是百分位    百分位,人体测量用语,确定人体尺寸分布值的方法。    百分位表示具有某一人体尺寸和小于该尺寸的人占统计对象总人数的百分比。以第5百分位、人体身高尺寸为例,表示有5%的人身高等于或小于该尺寸。    由于人的人体尺寸有很大的变化,它不是某一确定的数值,而是分布于一定的范围内。如亚洲人的身高是151~188厘米这个范围,而我们设计时只能用一个确定的数值,而且并不能象我们一般理解的那样用平均值。确定要使用那一数值就是百分位的方法要解决的问题。2、具体应用    大部分的人体测量数据是按百分位表达的,把研究对象分成一百份,根据一些指定的人体尺寸项目(如身高),从最小到最大顺序排列,进行分段,每一段的截至点即为一个百分位。例如我们若以身高为例:第5百分位的尺寸表示有5%的人身高等于或小于这个尺寸。换句话说就是有95%的人身高高于这个尺寸。第95百分位则表示有95%的人等于或小于这个尺寸,5%的人具有更高的身高。第50百分位为中点,表示把一组数据平分成两组,较大的50%较小的50%。第50百分位的数值可以说接近平均值,但决不能理解为有"平均人"这样的尺寸。    统计学表明,任意一组特定对象的人体尺寸,其分布规律符合正态分布的规律,即大部分属于中间值,只有一小部分属于过大和过小的值,它们分布在范围的两端,设第5百分位和第95百分位,第5百分位表示身材较小的,有5%的人低此尺寸;第95百分位表示高,即有5%的人高于此值。在设计上满足所有人的要求是不可能的,但必须满足大多数人。所以必须从中间部分取用能够满足大多数人的尺寸数据作为依据,因此一般都是舍去两头,只涉及中间90%、95%或99%的大多数人,只排除少数人。应该排除多少取决于排除的后果情况和经济效果。3、如何在Python中计算百分位数    百分位数是统计学中常用的一种指标,用于度量数据分布的集中程度。    1、统计学术语,如果将一组数据从小到大排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数。可表示为:一组n个观测值按数值大小排列。如,处于p%位置的值称第p百分位数。    2、百分位通常用第几百分位来表示,如第五百分位,它表示在所有测量数据中,测量值的累计频次达5%。以身高为例,身高分布的第五百分位表示有5%的人的身高小于此测量值,95%的身高大于此测量值。    在Python中,可以使用numpy 库来计算百分位数。4、函数说明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/1out:输出数据的存放对象,参数要与预期输出有相同的形状和缓冲区长度overwrite_input:bool,默认False,为True时及计算直接在数组内存计算,计算后原数组无法保存interpolation:取值范围{'linear','lower','higher','midpoint','nearest'}默认liner,比如取中位数,但是中位数有两个数字6和7,选不同参数来调整输出keepdims:bool,默认False,为真时取中位数的那个轴将保留在结果中5、代码示例importnumpyasnpdata=np.array([1,2,3,4,5,6,7,8,9,10])p=50result=np.percentile(data,p)print("第",p,"个百分位数是",result)    在上面的代码中,我们使用了numpy库的percentile函数来计算数据集data的第50个百分位数。输出结果为第50个百分位数是5.5。    除了计算单个百分位数,numpy库还支持计算多个百分位数。以下是示例代码:importnumpyasnpdata=np.array([1,2,3,4,5,6,7,8,9,10])p=[25,50,75]result=np.percentile(data,p)print("第",p,"个百分位数分别是",result)    在上面的代码中,我们使用了numpy库的percentile函数来计算数据集data的第25、50、75个百分位数。输出结果为第[25,50,75]个百分位数分别是[3.25,5.5,7.75]。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-9 19:07 , Processed in 0.532044 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表