所以我有一个特定的数组,它本身有 2 个单独的数组。我想做的是将这两个单独的数组平均在一起,因此,例如,如果我有我的原始数组(例如 [(2,3,4),(4,5,6)]
)并且我想要一个像 [3,5]
这样的输出数组,我将如何做到这一点?我尝试这样做如下:
averages = reduce(sum(array)/len(array), [array])
>>> map(lambda x: sum(x)/len(x), [(2,3,4),(4,5,6)])
[3, 5]
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.])
你可以通过列表理解来做到这一点:
data = [(2,3,4),(4,5,6)]
averages = [ sum(tup)/len(tup) for tup in data ]