gpt4 book ai didi

python - 如何删除顶部和底部 nth% 的数据

转载 作者:太空宇宙 更新时间:2023-11-03 12:31:49 27 4
gpt4 key购买 nike

我正在创建一个函数来计算截尾平均值。为此,我删除了最高和最低百分比的数据,然后像往常一样计算平均值。到目前为止我所拥有的是:

def trimmed_mean(data, percent):
from numpy import percentile

if percent < 50:
data_trimmed = [i for i in data
if i > percentile(data, percent)
and i < percentile(data, 100-percent)]
else:
data_trimmed = [i for i in data
if i < percentile(data, percent)
and i > percentile(data, 100-percent)]

return sum(data_trimmed) / float(len(data_trimmed))

但我确实得到了错误的结果。所以,对于 [37, 33, 33, 32, 29, 28, 28, 23, 22, 22, 22, 21, 21, 21, 20, 20, 19, 19, 18, 18, 18, 18 , 16, 15, 14, 14, 14, 12, 12, 9, 6] 10% 意味着应该是 20.16 而我得到 20.0

有没有其他方法可以在 python 中删除顶部和底部数据?还是我做错了什么?

最佳答案

你可以看看这个相关问题:Trimmed Mean with Percentage Limit in Python?

简而言之,对于 scipy 版本> 0.14.0,下面的工作

from scipy import stats
m = stats.trim_mean(X, percentage)

如果您不想依赖外部库,那么您当然可以恢复到 Chip Grandits 回答中所示的方法。

关于python - 如何删除顶部和底部 nth% 的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35846943/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com