Python中numpy的np.percentile百分位函數(shù)舉例詳解
1、什么是百分位
百分位,人體測(cè)量用語,確定人體尺寸分布值的方法。
百分位表示具有某一人體尺寸和小于該尺寸的人占統(tǒng)計(jì)對(duì)象總?cè)藬?shù)的百分比。以第5百分位、人體身高尺寸為例,表示有5%的人身高等于或小于該尺寸。
由于人的人體尺寸有很大的變化,它不是某一確定的數(shù)值,而是分布于一定的范圍內(nèi)。如亞洲人的身高是151~188厘米這個(gè)范圍,而我們?cè)O(shè)計(jì)時(shí)只能用一個(gè)確定的數(shù)值,而且并不能象我們一般理解的那樣用平均值。確定要使用那一數(shù)值就是百分位的方法要解決的問題。
2、具體應(yīng)用
大部分的人體測(cè)量數(shù)據(jù)是按百分位表達(dá)的,把研究對(duì)象分成一百份,根據(jù)一些指定的人體尺寸項(xiàng)目(如身高),從最小到最大順序排列,進(jìn)行分段,每一段的截至點(diǎn)即為一個(gè)百分位。例如我們?nèi)粢陨砀邽槔旱?百分位的尺寸表示有5%的人身高等于或小于這個(gè)尺寸。換句話說就是有95%的人身高高于這個(gè)尺寸。第95百分位則表示有95%的人等于或小于這個(gè)尺寸,5%的人具有更高的身高。第50百分位為中點(diǎn),表示把一組數(shù)據(jù)平分成兩組,較大的50%較小的50%。第50百分位的數(shù)值可以說接近 平均值,但決不能理解為有"平均人"這樣的尺寸。
統(tǒng)計(jì)學(xué)表明,任意一組特定對(duì)象的人體尺寸,其分布規(guī)律符合正態(tài)分布的規(guī)律,即大部分屬于中間值,只有一小部分屬于過大和過小的值,它們分布在范圍的兩端,設(shè)第5百分位和第95百分位,第5百分位表示身材較小的,有5%的人低此尺寸;第95百分位表示高,即有5%的人高于此值。在設(shè)計(jì)上滿足所有人的要求是不可能的,但必須滿足大多數(shù)人。所以必須從中間部分取用能夠滿足大多數(shù)人的尺寸數(shù)據(jù)作為依據(jù),因此一般都是舍去兩頭,只涉及中間90%、95%或99%的大多數(shù)人,只排除少數(shù)人。應(yīng)該排除多少取決于排除的后果情況和經(jīng)濟(jì)效果。
3、如何在 Python 中計(jì)算百分位數(shù)
百分位數(shù)是統(tǒng)計(jì)學(xué)中常用的一種指標(biāo),用于度量數(shù)據(jù)分布的集中程度。
1、統(tǒng)計(jì)學(xué)術(shù)語,如果將一組數(shù)據(jù)從小到大排序,并計(jì)算相應(yīng)的累計(jì)百分位,則某一百分位所對(duì)應(yīng)數(shù)據(jù)的值就稱為這一百分位的百分位數(shù)。可表示為:一組n個(gè)觀測(cè)值按數(shù)值大小排列。如,處于p%位置的值稱第p百分位數(shù)。
2、百分位通常用第幾百分位來表示,如第五百分位,它表示在所有測(cè)量數(shù)據(jù)中,測(cè)量值的累計(jì)頻次達(dá)5%。以身高為例,身高分布的第五百分位表示有5%的人的身高小于此測(cè)量值,95%的身高大于此測(cè)量值。
在 Python 中,可以使用 numpy 庫來計(jì)算百分位數(shù)。
4、函數(shù)說明
np.percentile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear', keepdims=False) a : array,用來算分位數(shù)的對(duì)象,可以是多維的數(shù)組 q : 介于0-100的float,用來計(jì)算是幾分位的參數(shù),如四分之一位就是25,如要算兩個(gè)位置的數(shù)就(25,75) axis : 坐標(biāo)軸的方向,一維的就不用考慮了,多維的就用這個(gè)調(diào)整計(jì)算的維度方向,取值范圍0/1 out : 輸出數(shù)據(jù)的存放對(duì)象,參數(shù)要與預(yù)期輸出有相同的形狀和緩沖區(qū)長度 overwrite_input : bool,默認(rèn)False,為True時(shí)及計(jì)算直接在數(shù)組內(nèi)存計(jì)算,計(jì)算后原數(shù)組無法保存 interpolation : 取值范圍{'linear', 'lower', 'higher', 'midpoint', 'nearest'} 默認(rèn)liner,比如取中位數(shù),但是中位數(shù)有兩個(gè)數(shù)字6和7,選不同參數(shù)來調(diào)整輸出 keepdims : bool,默認(rèn)False,為真時(shí)取中位數(shù)的那個(gè)軸將保留在結(jié)果中
5、代碼示例
import numpy as np data = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) p = 50 result = np.percentile(data, p) print("第", p, "個(gè)百分位數(shù)是", result)
在上面的代碼中,我們使用了 numpy 庫的 percentile 函數(shù)來計(jì)算數(shù)據(jù)集 data 的第 50 個(gè)百分位數(shù)。輸出結(jié)果為第 50 個(gè)百分位數(shù)是 5.5。
除了計(jì)算單個(gè)百分位數(shù),numpy 庫還支持計(jì)算多個(gè)百分位數(shù)。以下是示例代碼:
import numpy as np data = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) p = [25, 50, 75] result = np.percentile(data, p) print("第", p, "個(gè)百分位數(shù)分別是", result)
在上面的代碼中,我們使用了 numpy 庫的 percentile 函數(shù)來計(jì)算數(shù)據(jù)集 data 的第 25、50、75 個(gè)百分位數(shù)。輸出結(jié)果為第 [25, 50, 75] 個(gè)百分位數(shù)分別是 [3.25, 5.5, 7.75]。
總結(jié)
到此這篇關(guān)于Python中numpy的np.percentile百分位函數(shù)的文章就介紹到這了,更多相關(guān)numpy np.percentile百分位函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Python的Tornado框架實(shí)現(xiàn)一個(gè)一對(duì)一聊天的程序
這篇文章主要介紹了使用Python的Tornado框架實(shí)現(xiàn)一個(gè)一對(duì)一聊天的程序,程序基于WebSocket,需要的朋友可以參考下2015-04-04python中面向?qū)ο蟮淖⒁恻c(diǎn)概述總結(jié)
大家好,本篇文章主要講的是python中面向?qū)ο蟮淖⒁恻c(diǎn)概述總結(jié),感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下2022-02-02python數(shù)據(jù)處理和數(shù)據(jù)清洗的示例詳解
數(shù)據(jù)清洗是指發(fā)現(xiàn)并糾正數(shù)據(jù)文件中可識(shí)別的錯(cuò)誤的最后一道程序,包括檢查數(shù)據(jù)一致性,處理無效值和缺失值等,數(shù)據(jù)清洗與處理的目的是提高數(shù)據(jù)的質(zhì)量,提高實(shí)驗(yàn)結(jié)果的可靠度,本文給大家介紹了python數(shù)據(jù)處理和數(shù)據(jù)清洗的示例,需要的朋友可以參考下2024-08-08