Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找python列表的差异列表_Python_Variance - Fatal编程技术网

查找python列表的差异列表

查找python列表的差异列表,python,variance,Python,Variance,我是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] 我想找到这样的方差输出: data = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]] [var_column_

我是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]
我想找到这样的方差输出:

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解决这个问题。

您不需要重新发明轮子-可以帮您完成繁重的工作:

导入统计信息
数据=[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]
方差=[统计。zip(*数据)中l的方差(l)]

您不需要重新发明车轮-可以为您完成繁重的工作:

导入统计信息
数据=[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]
方差=[统计。zip(*数据)中l的方差(l)]

您只需使用内置的库
统计信息
()


您只需使用内置库
statistics
()


不导入统计数据的一行方法:

def variance(allgroups):
    return [sum((x - sum(group) / len(group)) ** 2 for x in group) / (len(group) - 1) for group in zip(*allgroups)]

不导入统计数据的一行方法:

def variance(allgroups):
    return [sum((x - sum(group) / len(group)) ** 2 for x in group) / (len(group) - 1) for group in zip(*allgroups)]

为什么要使用
zip
?您的组是
[1,2,3]..
还是
[1,4,7,10]
?我的组将是[1,2,3]您为什么使用
邮政编码?您的分组是
[1,2,3]…
还是
[1,4,7,10]
?我的分组是[1,2,3]我想是
对于zip中的l(*数据)
@Danimesjo是的,没错-我误解了要求。感谢您的关注、编辑和修复。我认为这是zip(*数据)中l的
@DaniMesejo-yup,没错-我误解了要求。感谢您的关注、编辑和修复。