【问题标题】:In Numpy, how can I obtain an equivalent to an arr percentile, but including negative numbers?在 Numpy 中,如何获得与 arr 百分位数相同的值,但包括负数?
【发布时间】:2021-05-16 17:34:43
【问题描述】:

我无法做出更好的标题。让我解释一下:

Numpy 有 percentile() 函数,可以计算任意数组的第 N 个百分位数:

import numpy as np

arr = np.arange(0, 10)

print(arr)
print(np.percentile(arr, 80))

>>> [0 1 2 3 4 5 6 7 8 9]
>>> 7.2

这很棒 - 7.2 标志着该数组的第 80 个百分位。

如何获得相同的百分位数类型的计算,但找出数组两端的第 N 个百分位数(正数和负数)?

例如,我的数组可能是:

[-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9]

所以我把它们放在一个数轴上,它会从 -10 到 10。我喜欢得到第 N 个百分位数来标记那个数轴的末端。例如,对于第 90 个百分位数,输出可能看起来像 -8.1 和 7.5,因为数组中 90% 的值都在该范围内,其余 10% 低于 -8.1 或高于 7.5。

当然,这些数字是我编造出来的,只是为了说明我要计算的内容。

有没有 NumPy 方法来获得这样的边界?

如果我可以进一步解释或澄清,请告诉我,我知道这是一个复杂的问题,我正在尽力澄清。非常感谢!

【问题讨论】:

    标签: python arrays numpy percentile


    【解决方案1】:

    你在寻找类似的东西

    import numpy as np
    
    def extremities(array, pct):
        # assert 50 <= pct <= 100
        return np.percentile(array, [100 - pct, pct])
    
    arr = np.arange(-10, 10)
    print(extremities(arr, 90)) # [-8.1, 7.1]
    

    【讨论】:

      猜你喜欢
      • 2021-10-27
      • 2016-04-11
      • 1970-01-01
      • 2014-09-06
      • 2020-03-19
      • 2020-07-16
      • 2021-10-11
      • 2020-09-24
      • 2014-11-22
      相关资源
      最近更新 更多