scipy.stats.
percentileofscore#
- scipy.stats.percentileofscore(a, score, kind='rank', nan_policy='propagate')[原始碼]#
計算分數相對於分數列表的百分位數排名。
例如,
percentileofscore
為 80% 表示 a 中有 80% 的分數低於給定分數。 在間隙或並列的情況下,確切的定義取決於可選的關鍵字 kind。- 參數:
- aarray_like
與 score 比較的 1 維陣列。
- scorearray_like
要計算百分位數的分數。
- kind{‘rank’, ‘weak’, ‘strict’, ‘mean’}, optional
指定結果分數的解釋方式。 可用的選項如下(預設為 ‘rank’)
‘rank’:分數的平均百分比排名。 如果有多個匹配項,則平均所有匹配分數的百分比排名。
‘weak’:此種類型對應於累積分布函數的定義。 80% 的 percentileofscore 表示 80% 的值小於或等於提供的分數。
‘strict’:與 “weak” 類似,但僅計算嚴格小於給定分數的值。
‘mean’: “weak” 和 “strict” 分數的平均值,通常用於測試。 請參閱 https://en.wikipedia.org/wiki/Percentile_rank
- nan_policy{‘propagate’, ‘raise’, ‘omit’}, optional
指定如何處理 a 中的 nan 值。 可用的選項如下(預設為 ‘propagate’)
‘propagate’:傳回 nan(對於 score 中的每個值)。
‘raise’:拋出錯誤
‘omit’:執行計算時忽略 nan 值
- 返回:
- pcosfloat
分數相對於 a 的百分位數位置 (0-100)。
範例
四分之三的給定值低於給定分數
>>> import numpy as np >>> from scipy import stats >>> stats.percentileofscore([1, 2, 3, 4], 3) 75.0
對於多個匹配項,請注意兩個匹配項的分數(分別為 0.6 和 0.8)是如何平均的
>>> stats.percentileofscore([1, 2, 3, 3, 4], 3) 70.0
只有 2/5 的值嚴格小於 3
>>> stats.percentileofscore([1, 2, 3, 3, 4], 3, kind='strict') 40.0
但是 4/5 的值小於或等於 3
>>> stats.percentileofscore([1, 2, 3, 3, 4], 3, kind='weak') 80.0
weak 和 strict 分數之間的平均值是
>>> stats.percentileofscore([1, 2, 3, 3, 4], 3, kind='mean') 60.0
支援分數陣列(任何維度)
>>> stats.percentileofscore([1, 2, 3, 3, 4], [2, 3]) array([40., 70.])
輸入可以是無限的
>>> stats.percentileofscore([-np.inf, 0, 1, np.inf], [1, 2, np.inf]) array([75., 75., 100.])
如果 a 為空,則產生的百分位數均為 nan
>>> stats.percentileofscore([], [1, 2]) array([nan, nan])