在多维数组上使用reduce函数

时间:2014-04-08 20:54:28

标签: python multidimensional-array average reduce

所以我有一个特定的数组,它有两个独立的数组。我要做的是将这两个单独的数组放在一起,例如,如果我有我的原始数组,如[(2,3,4),(4,5,6)],我想要一个像[3,5]这样的输出数组,我该怎么做?我这样做的尝试如下:

averages = reduce(sum(array)/len(array), [array])

3 个答案:

答案 0 :(得分:2)

>>> map(lambda x: sum(x)/len(x), [(2,3,4),(4,5,6)])
[3, 5]

答案 1 :(得分:0)

reduce在这里不是一个好选择。只需使用列表理解:

>>> a = [(2,3,4),(4,5,6)]
>>> [sum(t)/len(t) for t in a]
[3, 5]

请注意,/在python2中默认为整数除法。

如果您有numpy可用,则有更好的选择:

>>> import numpy as np
>>> a = np.array(a)
>>> a.mean(axis=1)
array([ 3.,  5.])

答案 2 :(得分:0)

您可以使用列表comphrehesion执行此操作:

data = [(2,3,4),(4,5,6)]
averages = [ sum(tup)/len(tup) for tup in data ]