scipy.stats.

percentileofscore#

scipy.stats.percentileofscore(a, score, kind='rank', nan_policy='propagate')[源代码][源代码]#

计算一个分数在一组分数中的百分位排名。

一个 percentileofscore 值,例如 80%,意味着在 a 中 80% 的分数低于给定的分数。在存在间隔或并列的情况下,确切的定义取决于可选的关键字 kind

参数:
aarray_like

一个与 score 进行比较的 1-D 数组。

分数array_like

用于计算百分位数的分数。

种类{‘rank’, ‘weak’, ‘strict’, ‘mean’}, 可选

指定结果分数的解释。以下选项可用(默认是’rank’):

  • ‘rank’: 分数的平均百分比排名。 如果有多个匹配项,则取所有匹配分数的百分比排名的平均值。

  • ‘weak’: 这种类型对应于累积分布函数的定义。80% 的百分位数意味着 80% 的值小于或等于提供的分数。

  • ‘strict’: 类似于“weak”,但仅计算严格小于给定分数的值。

  • ‘mean’: “弱”和“严格”分数的平均值,常用于测试。参见 https://en.wikipedia.org/wiki/Percentile_rank

nan_policy{‘propagate’, ‘raise’, ‘omit’}, 可选

指定如何处理 a 中的 nan 值。以下选项可用(默认是 ‘propagate’):

  • ‘propagate’: 返回 nan(对于 score 中的每个值)。

  • ‘raise’: 抛出一个错误

  • ‘omit’: 执行计算时忽略 nan 值

返回:
多囊卵巢综合征浮动

相对于 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

弱评分和严格评分之间的平均值是:

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