2012-07-05 180 views
0

是否有可能使用numpy或其他方法在Python中合併2D陣列?我有大約200個二維數組,都具有相同的尺寸(1024,256),並且希望將它們添加到彼此的較低端。添加後的最終形狀其中3個應該是(1024,768)。添加/合併2D陣列

回答

5

三個數組(1024,256)必須附加到右端端,而不是端。您將它們水平堆疊在一起(1024行,256列)。

使用numpy.hstackħ爲水平):

lst是陣列(1024,256)(numpy的或Python)的列表:

numpy.hstack(lst) 

返回單個numpy的陣列(1024,256*len(lst))

+0

非常感謝!我總是誤解了橫向的意思! – Fourier

0

這是相當確實很簡單,只要所有陣列的大小相同。

>>> a = [[0,1,2],[3,4,5]] 
>>> b = [[6,7,8],[9,10,11]] 
>>> c = [a[i]+b[i] for i in xrange(len(a))] 
>>> c 
[[0, 1, 2, 6, 7, 8], [3, 4, 5, 9, 10, 11]] 

或更好

sum2darray = lambda a, b: [a[i]+b[i] for i in xrange(len(a))] 
c = sum2darray(a,b) 
+0

OP:*我有** 200 ** 2D陣列* – eumiro