如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 –