如documentation -
numpy.transpose(a, axes=None)
轴给出:整数的列表中,可选 默认情况下,反向的尺寸,根据所给出的值,否则置换的轴。
第二个参数是用于置换值的轴。例如,如果初始元素的索引是(x,y,z)
(其中x
是第0轴,y
是第1轴,并且z
是第2轴),则该元素在结果数组中的位置变为(z,y,x)(即根据您为axes
提供的参数,首先是第二轴,然后是第一根轴,最后是第0根轴)。
既然你调换形状(2,2,2)
的数组,转置造型也(2,2,2)
,并且位置将作为改变 -
(0,0,0) -> (0,0,0)
(1,0,0) -> (0,0,1)
(0,1,0) -> (0,1,0)
(1,1,0) -> (0,1,1)
...
既然你选择是微不足道的轴,让解释为另一个轴。实施例 -
In [54]: A = np.arange(30).reshape((2, 3, 5))
In [55]: A
Out[55]:
array([[[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]],
[[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24],
[25, 26, 27, 28, 29]]])
In [56]: np.transpose(A,(1,2,0))
Out[56]:
array([[[ 0, 15],
[ 1, 16],
[ 2, 17],
[ 3, 18],
[ 4, 19]],
[[ 5, 20],
[ 6, 21],
[ 7, 22],
[ 8, 23],
[ 9, 24]],
[[10, 25],
[11, 26],
[12, 27],
[13, 28],
[14, 29]]])
在此,第一元件(0,0,0)
变成在结果中的(0,0,0)
元件。
第二个元素(0,0,1)
成为结果中的(0,1,0)
元素。等 -
(0,0,0) -> (0,0,0)
(0,0,1) -> (0,1,0)
(0,0,2) -> (0,2,0)
...
(2,3,4) -> (3,4,2)
...
您是否阅读过文档,例如'help(numpy.transpose)'?你只是“排列”尺寸。如果你通过置换'(2,1,0)',那么处于'[x,y,z]'位置的元素现在将处于位置'[z,y,x]'或位置' [z,x,y]'用于置换'(3,0,1)' –
谢谢@tobias_k –