<p>我相信你要找的东西叫做<a href="https://en.wikipedia.org/wiki/Percentile" rel="nofollow noreferrer">percentiles</a>。AFAIK最常见的是50%(又名中位数)和90%。可以使用<a href="https://numpy.org/doc/stable/reference/generated/numpy.percentile.html" rel="nofollow noreferrer">numpy.percentile</a>计算百分位:</p>
<pre><code>import numpy as np
def filterByPercentile(data, percentile):
percentile = np.percentile(data,percentile)
return data[data >= percentile]
input1 = np.array([46.34, 42.42, 5.11, 2.16, 1.23, 1.19, 0.48, 0.4, 0.22, 0.22, 0.09, 0.04, 0.04, 0.04])
input2 = np.array([32.98, 31.82, 9.76, 3.21, 1.18, 0.43, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11])
input3 = np.array([37.72, 30.66, 30.66, 0.72, 0.24])
print("median:")
print(filterByPercentile(input1,50))
print(filterByPercentile(input2,50))
print(filterByPercentile(input3,50))
print("90%:")
print(filterByPercentile(input1,90))
print(filterByPercentile(input2,90))
print(filterByPercentile(input3,90))
</code></pre>
<p>输出:</p>
<pre><code>median:
[46.34 42.42 5.11 2.16 1.23 1.19 0.48]
[32.98 31.82 9.76 3.21 1.18 0.43]
[37.72 30.66 30.66]
90%:
[46.34 42.42]
[32.98 31.82]
[37.72]
</code></pre>
<p>由您选择百分位数的值</p>