【发布时间】:2020-03-18 06:04:54
【问题描述】:
我是 python 新手,我需要帮助来查找列表列表中的平均值和方差。 我有一个这样的列表:
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9],
[10, 11, 12]]
我想找到这样的方差输出:
[var_column_1, var_column_2, var_column_3, var_column_4]
我能够找到平均值,但对于差异,我没有找到解决方案的运气。这是我的代码:
def avg(allgroups):
return [float(sum(i))/len(i) for i in zip(*allgroups)]
def variance(allgroups):
summm = 0.0
for i in zip(*allgroups):
summm = summm + (i-avg(allgroups))**2
return summm / (len(allgroups)-1)
TheAvg=avg(allgroups)
print(TheAvg)
Variance=variance(allgroups)
print(Variance)
我不断收到屏幕错误:
*summm = summm + (i-avg(allgroups))**2
TypeError: unsupported operand type(s) for -: 'tuple' and 'list'*
如果有任何帮助,我将不胜感激。 P/S:我不能用 numpy 来解决这个问题。
【问题讨论】:
-
你为什么使用
zip?你的群组是[1,2,3]..还是[1,4,7,10]? -
我的组是[1,2,3]