我有一个大致如下的数组:
[ (0.5, 0.6, 0.7), (0.1, 0.9, 0.8), (0.9, 1.0, 0.4),
...
(0.3, 0.8, 0.3), (0.2, 0.4, 0.9), (0.5, 0.5, 0.3) ]
我需要的是[0] [0],[0] [1],[0] [2]等的总和,以及[1] [0],[1] [1], [1] [2]等我需要一种方法来获得数组中所有项的第一个索引的总和,然后是数组中所有项的第二个索引的总和,等等。
我怎样才能在Python中执行此操作?最终的结果是有一个单元组,其中包含所有元组的每个索引的平均值。
答案 0 :(得分:1)
这适用于任意大小的元组:
result = reduce(lambda x, y: tuple((xi + yi) for (xi, yi) in zip (x, y)), l)
l
是元组列表。当然,这只是总结一切,不计算平均值。
你没有用NumPy这样做的原因。它会简化(并加速)事情。
答案 1 :(得分:1)
>>> c=[ (0.5, 0.6, 0.7), (0.1, 0.9, 0.8), (0.9, 1.0, 0.4),(0.5, 0.6, 0.7), (0.1, 0.9, 0.8), (0.9, 1.0, 0.4),(0.5, 0.6, 0.7), (0.1, 0.9, 0.8), (0.9, 1.0, 0.4)]
>>> [ sum([t[i] for t in c]) for i in range(len(c[0]))]
[4.5, 7.5, 5.6999999999999993]
这假设所有元组都有许多元素作为你的第一个元组
答案 2 :(得分:0)
python 2.6.x
>>> reduce(lambda x, y: (x[0]+y[0], x[1]+y[1], x[2]+y[2]), [(1, 2, 3), (2, 3, 4), (4, 5, 6)])
(7, 10, 13)
答案 3 :(得分:0)
tuple(a.sum(axis=0))
如果a是数组
答案 4 :(得分:0)
尝试以下方法:
values = [(1,2,3), (4,5,6)]
print map(sum, values)