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