【问题标题】:Find the edges of a numpy array that 95% data within them找到一个 numpy 数组的边缘,其中包含 95% 的数据
【发布时间】:2016-08-08 05:42:27
【问题描述】:

我有一个包含数万个元素的 numpy 数组。我想找到关键元素,95% 的数据都落在其中。例如,

import numpy as np
a = np.linspace(1,200,200)

那么 95% 数据落在其中的两个元素是 5 和 195。numpy 函数percentile 只返回一个值,这不是我想要的。任何人都知道任何模块可以做到这一点?

【问题讨论】:

  • 当然百分位数可以做到这一点:您只需要 2.5% 和 97.5% 的百分位数。
  • 请注意,您的实际问题没有唯一答案:1 和 191 也是正确的,(以及 2、192 等)。

标签: python arrays numpy percentage


【解决方案1】:

这将同时返回两个值。事实上,第二个参数可以是一个列表,其中包含您想要计算的多个百分位数。

np.percentile(a, [2.5, 97.5])

然后要捕获所需范围内的所有数据,请执行以下操作:

lower, upper = np.percentile(a, [2.5, 97.5])
a[(a > lower) & (a < upper)]

【讨论】:

    猜你喜欢
    • 2019-06-19
    • 1970-01-01
    • 2018-12-20
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多