元组的平均元组

时间:2012-09-13 18:29:57

标签: python tuples

如何在一般意义上对元组元组中的值进行平均,以便:

(1,2,3),(3,4,5)

变为:

(2,3,4)

2 个答案:

答案 0 :(得分:11)

x = ((1,2,3),(3,4,5))

from numpy import mean  # or write your own mean function
tuple(map(mean, zip(*x)))
# (2.0, 3.0, 4.0)

或:

from numpy import mean
tuple(mean(x, axis=0))

答案 1 :(得分:11)

你可以这样使用zip

In [1]: x = ((1, 2, 3), (4, 5, 6))

In [2]: [sum(y) / len(y) for y in zip(*x)]
Out[3]: [2, 3, 4]

另一种方法是使用lambda在元组中使用超过2个元组并导致浮动而不是int' s:

>>> x = ((10, 10, 10), (40, 55, 66), (71, 82, 39), (1, 2, 3))
>>> print tuple(map(lambda y: sum(y) / float(len(y)), zip(*x)))
(30.5, 37.25, 29.5)