python将多个数组加在一起

M.S*_*son 0 python arrays indexing sum

我有一个大型数组中包含多个5x5数组-总体形状为:5 x 5 x29。我想对每个5 x 5数组求和以生成一个单个数组,而不是29个单个数组。

我知道您可以按照以下方式进行操作:

new_data = data1[:,:,0] + data1[:,:,1] + ... + data1[:,:,29]
Run Code Online (Sandbox Code Playgroud)

但是,这对于大型阵列而言非常麻烦。有没有更简单的方法可以做到这一点?

iz_*_*iz_ 6

假设您正在使用NumPy,则应该能够执行以下操作:

In [13]: data1 = np.arange(100).reshape(5, 5, 4) # For example

In [14]: data1[:,:,0] + data1[:,:,1] + data1[:,:,2] + data1[:,:,3] # Bad way
Out[14]:
array([[  6,  22,  38,  54,  70],
       [ 86, 102, 118, 134, 150],
       [166, 182, 198, 214, 230],
       [246, 262, 278, 294, 310],
       [326, 342, 358, 374, 390]])

In [15]: data1.sum(axis=2) # Good way
Out[15]:
array([[  6,  22,  38,  54,  70],
       [ 86, 102, 118, 134, 150],
       [166, 182, 198, 214, 230],
       [246, 262, 278, 294, 310],
       [326, 342, 358, 374, 390]])
Run Code Online (Sandbox Code Playgroud)