查找其中包含 95% 数据的 numpy 数组的边缘

Hua*_*ang -1 python arrays numpy percentage

我有一个包含数万个元素的 numpy 数组。我想找到关键元素,95% 的数据都属于这些元素。例如,

import numpy as np
a = np.linspace(1,200,200)
Run Code Online (Sandbox Code Playgroud)

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

fiv*_*lor 5

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

np.percentile(a, [2.5, 97.5])
Run Code Online (Sandbox Code Playgroud)

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

lower, upper = np.percentile(a, [2.5, 97.5])
a[(a > lower) & (a < upper)]
Run Code Online (Sandbox Code Playgroud)