2013-06-12 29 views
3

我们有一些相同形状的数组,并且想合并它们。在Numpy中合并两个相同形状数组的最干净的方法

通过“合并”,我的意思是输出一个新的数组,每个位置的每个数组中的每个i,j的总和。

import numpy as np 
first = np.array([[1,1],[1,1]]) 
second = np.array([[2,2],[2,2]]) 
third = np.array([[3,3],[3,3]]) 

结果应该是:

[[6,6], 
[6,6]] 

这里是我的代码......但有一个更清洁的方式?我似乎无法找到一个内置的方法:

def merge_arrays(arrays): 
    output = arrays[0] 
    for a in arrays[1:]: 
     for i,row in enumerate(a): 
      for j,col in enumerate(row): 
       output[i,j] += a[i,j] 
    return output 

merge_arrays([first, second, third]) 

回答

4

这只是output = first + second + thirdnp.sum([first, second, third], axis=0)

+0

该死的,你确实知道了答案,但我不得不在ipython中试用它,但是你秒杀了我:D –

+2

@KlausWarzecha - 当我没有先测试出问题时,我通常会被烧掉! (而且我这次也是这样做的......当我第一次输入时,忘记了'axis = 0'。) –

+0

它......很......很漂亮! – LittleBobbyTables

相关问题