溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

詳解python中numpy庫np.percentile

發(fā)布時(shí)間:2020-07-17 17:57:48 來源:億速云 閱讀:307 作者:小豬 欄目:開發(fā)技術(shù)

小編這次要給大家分享的是詳解python中numpy庫np.percentile,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

在python中計(jì)算一個(gè)多維數(shù)組的任意百分比分位數(shù),此處的百分位是從小到大排列,只需用np.percentile即可……

a = range(1,101)
#求取a數(shù)列第90%分位的數(shù)值
np.percentile(a, 90)
Out[5]: 90.10000000000001

a = range(101,1,-1)
#百分位是從小到大排列
np.percentile(a, 90)
Out[7]: 91.10000000000001

詳看官方文檔

numpy.percentile
Parameters
 ----------
 a : np數(shù)組
 q : float in range of [0,100] (or sequence of floats)
  Percentile to compute。
  要計(jì)算的q分位數(shù)。
 axis : 那個(gè)軸上運(yùn)算。
 keepdims :bool是否保持維度不變。

 Examples
 --------
 >>> a = np.array([[10, 7, 4], [3, 2, 1]])
 >>> a
 array([[10, 7, 4],
   [ 3, 2, 1]])
 >>> np.percentile(a, 50) #50%的分位數(shù),就是a里排序之后的中位數(shù)
 3.5
 >>> np.percentile(a, 50, axis=0) #axis為0,在縱列上求
 array([[ 6.5, 4.5, 2.5]])
 >>> np.percentile(a, 50, axis=1) #axis為1,在橫行上求
 array([ 7., 2.])
 >>> np.percentile(a, 50, axis=1, keepdims=True) #keepdims=True保持維度不變
 array([[ 7.],
   [ 2.]])

補(bǔ)充知識(shí):關(guān)于np.percentile函數(shù)的自己的理解(我覺得很對(duì))

最近在跑別人baseline的時(shí)候看到np.percentile這個(gè)函數(shù),之前沒有用過,就跑去官方文檔看了看到底是怎么工作的(官方文檔連接)

行吧,官方文檔給出的例子居然是以50為例(我當(dāng)然知道這是得到中位數(shù)?。。。。?,但是自己在運(yùn)行的時(shí)候一直不明白下面的結(jié)果為什么是5.8.

詳解python中numpy庫np.percentile

后來自己琢磨了一下,函數(shù)得到的結(jié)果是得到一個(gè)數(shù),列表中百分之60的數(shù)小于該數(shù)字。

圖中的列表長度為9,。數(shù)字1所對(duì)應(yīng)的是0%,數(shù)字9對(duì)應(yīng)的是100%,中間有8個(gè)間隔。100/8=12.5.

參數(shù)為60,那么60/12.5=4.8,意味著需要4.8個(gè)間隔,好的,先跳過4個(gè)間隔,現(xiàn)在到達(dá)5這個(gè)位置,然后往后0.8個(gè)間隔,該間隔對(duì)應(yīng)的長度為6-5=1,所以最后得出的結(jié)果為5+1*0.8=5.8,和函數(shù)輸出的結(jié)果一樣。

主要是自己愛較真,不想了解具體怎么算的話只要記住函數(shù)的統(tǒng)計(jì)意義就可以。

看完這篇關(guān)于詳解python中numpy庫np.percentile的文章,如果覺得文章內(nèi)容寫得不錯(cuò)的話,可以把它分享出去給更多人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI