Numpy 多个数组的逐元素加法

问题描述 投票:0回答:3

我想知道是否有更有效/Pythonic 的方法来添加多个 numpy 数组(2D)而不是:

def sum_multiple_arrays(list_of_arrays):
   a = np.zeros(shape=list_of_arrays[0].shape) #initialize array of 0s
   for array in list_of_arrays:
      a += array
   return a 

Ps:我知道

np.add()
,但它仅适用于 2 个数组。

numpy matrix numpy-ndarray numpy-ufunc
3个回答
14
投票
np.sum(list_of_arrays, axis=0) 

应该可以。或者

np.add.reduce(list_of_arrays). 

4
投票

最简单、最 Pythonic 的解决方案就是使用

sum()
,如下所示:

sum(list_of_arrays)

1
投票

我知道问题是 numpy,但这里有一个纯 python 答案,以防有人需要它。

map(sum, zip(a,b))
它返回一个生成器。 您还可以通过
list(map(sum, zip(a,b)))
获取列表

© www.soinside.com 2019 - 2024. All rights reserved.