2013-06-12 30 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

相關問題