【发布时间】:2018-05-17 08:39:38
【问题描述】:
我有一个像[1,2,3,4,5] 这样的值数组,我需要找到每个值的百分位数。我期待的输出类似于[0,25,50,75,100]。
我在 numpy 中搜索了一个可以获得所需结果的 API,并找到了 np.percentile,但结果恰恰相反。给定一个百分位值,它将使用输入列表作为分布找到一个值。
有没有 api 或方法可以得到这个?谢谢
【问题讨论】:
-
你的价值观似乎不对。不应该是
[20.0, 40.0, 60.0, 80.0, 100.0]吗? -
那么,像这样,但是对于每个值? docs.scipy.org/doc/scipy/reference/generated/…
-
@Jean-FrançoisFabre 第零个百分位数应该是
1,因为它是列表中的最小值,对吧?并且np.percentile(range(1,6),0)返回了1。 -
@Jean-FrançoisFabre 使用 @Caramiriel 链接的函数,
stats.percentileofscore([1, 2, 3, 4, 5], 3)返回60.0但np.percentile(range(1,6), 60.0)返回3.4。为什么会有差异? -
np.percentile(range(0,6), 60.0)返回 3。您的 1 值不被视为原点。 0 是原点。或者功能转移。我不是麻木的专家。 scipy 和 numpy 可能使用百分位事物的不同定义/实现。如果该功能不能满足您的要求,请不要使用它。
标签: python