gpt4 book ai didi

python - Python中的修剪平均值

转载 作者:行者123 更新时间:2023-12-03 18:57:20 25 4
gpt4 key购买 nike

我正在尝试计算 修剪平均值 带有 的列表python中的手动函数但我不知道如何调整我的公式。

我希望你可以给这个函数一个 alpha 参数 ,例如0.1(减少 10% 的异常值)。

到目前为止我的代码(0.1 在这种情况下是 alpha 值):

lst[5,30,29,15,25,5,13,28,24,29] #for alpha=0.1 the list need to be adjusted --> lst[5,13,15,24,25,28,29,29]

def tmean(lst):
s= sorted(lst)
k= 0.1*len(lst)
trimmed_mean= (1/(len(lst)-(2*k)))*sum(len(lst)-k)
print(trimmed_mean)

alpha= 0.1 的trimmed_mean 应该是21,但我不知道我需要如何调整我的代码。

谢谢。

最佳答案

lst = [5,30,29,15,25,5,13,28,24,29]

def tmean(lst, alpha):
s = sorted(lst)
# Caclculate number of elements to trim from the beginning and end
a = round(alpha * len(lst)
# Check if alpha can actually remove any elements and if not return straight mean
if a == 0:
return sum(lst) / len(lst)
# Remove trimmed elements from the list
trimmed_list = s[a:-a]
# Check if there is a list left after trimming
if len(trimmed_list) == 0:
return
# Calculate average on the new list
trimmed_ave = sum(trimmed_list)/len(trimmed_list)
print(trimmed_ave)
return trimmed_ave

tmean(lst, 0.1)

显然,上述某些阶段可以组合起来以获得更简洁的代码,但为了便于解释,已拆分为单独的行

关于python - Python中的修剪平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60317568/

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