2015-11-06 59 views
1

我有一个3d阵列,我正在尝试一列刺。换句话说,考虑到数组:刺一个3d阵列

t = np.array([[[1,2],[3,4]],[[5,6],[7,8]],[[9,10],[11,12]]]) 

array([[[ 1, 2], 
     [ 3, 4]], 

    [[ 5, 6], 
     [ 7, 8]], 

    [[ 9, 10], 
     [11, 12]]]) 

我试图检索:

array([[ 1, 5, 9], 
     [ 2, 6, 10], 
     [ 3, 7, 11], 
     [ 4, 8, 12]]) 

np.ndarray.reshape似乎重组以排除刺一个顺序的元素。

numpy.lib.stride_tricks.as_strided可能工作,但我还没有找到正确的值组合。

回答

3

移调然后重塑:

>>> t.transpose(1, 2, 0).reshape(4, 3) 
array([[ 1, 5, 9], 
     [ 2, 6, 10], 
     [ 3, 7, 11], 
     [ 4, 8, 12]]) 

编辑:另外,您也可以重塑然后转:

>>> t.reshape(3, 4).T 
array([[ 1, 5, 9], 
     [ 2, 6, 10], 
     [ 3, 7, 11], 
     [ 4, 8, 12]]) 
+0

当然,非常感谢! – Richard