2016-07-07 1463 views
0

我有a=[[1 2 ... 3][4 5 ... 6]...[7 8 ... 9]]
我需要a=[[[1 1 1] [2 2 2] ... [3 3 3]][[4 4 4] [5 5 5] ... [6 6 6]]...[[7 7 7] [8 8 8] ... [9 9 9]]]Python將numpy數組轉換爲元組

我基本上需要a中的每個元素成爲它自己的3個值的元組。在柱狀版本

回答

2

Tile 3次,最後map到元組,像這樣 -

map(tuple,np.tile(a.ravel()[:,None],(1,3))) 

如果您正在尋找如在問題的預期輸出中列出的3D數組,你可以這樣做 -

np.tile(a[:,:,None],(1,1,3)) 

採樣運行 -

In [32]: a 
Out[32]: 
array([[1, 2, 3], 
     [4, 5, 6], 
     [7, 8, 9]]) 

In [33]: map(tuple,np.tile(a.ravel()[:,None],(1,3))) 
Out[33]: 
[(1, 1, 1), 
(2, 2, 2), 
(3, 3, 3), 
(4, 4, 4), 
(5, 5, 5), 
(6, 6, 6), 
(7, 7, 7), 
(8, 8, 8), 
(9, 9, 9)] 

In [34]: np.tile(a[:,:,None],(1,1,3)) 
Out[34]: 
array([[[1, 1, 1], 
     [2, 2, 2], 
     [3, 3, 3]], 

     [[4, 4, 4], 
     [5, 5, 5], 
     [6, 6, 6]], 

     [[7, 7, 7], 
     [8, 8, 8], 
     [9, 9, 9]]]) 
+0

有任何方法可以得到方括號和逗號嗎? :p – Sibi

+0

@Sibi沒有地圖的情況下使用:'np.tile(a.ravel()[:, None],(1,3))''。 – Divakar

+1

你正在處理['np.matrix'或'np.array'](http://stackoverflow.com/questions/4151128/what-are-the-differences-between-numpy-arrays-and-matrices-哪個 - 酮應該-IU)? – Divakar