2012-07-06 131 views
11

NumPy中有一種簡單的方法來扁平化類型對象數組嗎?拼合numpy數組

我知道.flatten()方法從變平相同的尺寸的陣列構造非對象類型數組:

I1 a = np.array([[1],[2],[3]]) 

I2 a.flatten() 
O2 array([1, 2, 3]) 
然而

,我不能得到D型=對象數組扁平:

I4 b 
O4 array([[1], [2, 3], [3]], dtype=object) 

I5 b.flatten() 
O5 array([[1], [2, 3], [3]], dtype=object) 

謝謝。

+2

的例子已經爲平面,因爲它可以('b.shape =(3)')!你究竟是什麼意思扁平化? – 2012-07-06 17:54:14

+0

是的,但實際上,我想讓b變成[1,2,3,3] – 2012-07-06 18:02:54

回答

28

如果你想[1,2,3,3],試試這個,然後

np.hstack(b) 
+1

好的。我準備發佈這個(其實是完全一樣的):[x for bb in b for x in bb] – 2012-07-06 18:07:23

+1

@urinieto實際上,您發佈的基於列表理解的方法更快,但它可以更好地解決numpy的方式。 – nye17 2012-07-06 18:16:13

+0

20k元素的數組怎麼樣? – 2012-07-06 18:24:46