百分位排名计算

10 投票
1 回答
13387 浏览
提问于 2025-04-17 09:20

我正在尝试使用 百分位排名 来计算一个分数的排名,使用的是 python statlib 模块。这个 percentileofscore 函数应该返回一个在0到100之间的值,但它经常会产生超出这个范围的数字。举个例子:

 >> a = [0,1,2,3,4,5]
 >> percentileofscore(a, 0)
 108.33333333333333

我也试过 scipy 模块,自己写的代码结果也差不多。

我是不是对这个函数有什么误解呢?

编辑 - 更多例子:

 percentileofscore([23,23,23,25], 23)
 137.5
 percentileofscore([12,19,65,25], 12)
 112.5
 percentileofscore([112,109,605,25], 25)
 112.5

似乎查询最低分的百分位数会导致这个问题。可能是个bug?

1 个回答

8

scipy.stats.percentileofscore 这个函数看起来是按预期工作的:

In [2]: import scipy.stats as stats

In [3]: stats.percentileofscore([0,1,2,3,4,5], 0)
Out[3]: 16.666666666666664

撰写回答