在多维数组上使用 reduce 函数



所以我有一个特定的数组,它本身有 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 ]

相关内容

  • 没有找到相关文章