2016-07-07 1465 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