我必须计算python中的均值,方差和std。
这是我的代码:
def mean(first_data_values):
return sum(first_data_values) / len(first_data_values)
def variance(values):
meanval = mean(values)
return sum((values[i]-meanval) ** 2 for i in values)/len(values)
def std(values):
return (variance(values)) ** (1/2)
所以我得到了错误的结果。知道什么是错的吗?
答案 0 :(得分:1)
错误在于以下行:
return sum((values[i]-meanval) ** 2 for i in values)/len(values)
i
逐个获取values
中每个元素的值。然后,您将其用作values[i]
中的索引,但它应该只是i
。
因此:
return sum((i-meanval) ** 2 for i in values)/len(values)
或
return mean([(i-meanval) ** 2 for i in values])