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])