經過上一篇已經對三維數組的轉置有所瞭解,那麼沒看明白的,可以從下面三維立方體的角度思考一下。
原數組的索引順序是x軸,y軸,z軸,即0軸,1軸,2軸。
那麼當將(0,1,2)改爲(1,0,2)時,即索引順序變爲y軸,x軸,z軸。以此類推。例子如下。
1、numpy.transpose(arr, axes)用於對換數組的維度。參數axes是整數列表對應維度。
(1)axes=[1,0,2]表示:(x,y,z)2*3*4 ——> (y,x,z)3*2*4
(2)axes=[2,1,0]表示:(x,y,z)2*3*4 ——> (z,y,x)4*3*2
(a的轉置求法一)
(a的轉置求法二)
2、numpy.swapaxes(arr, axis1, axis2)用於交換數組的兩個軸。
(1)0軸和1軸交換(=np.swapaxes(a,1,0)):(x,y,z)2*3*4 ——> (y,x,z)3*2*4
(2)0軸和2軸交換(=np.swapaxes(a,2,0)):(x,y,z)2*3*4 ——> (z,y,x)4*3*2
(a的轉置求法三)
3、numpy.rollaxis(arr, axis, start)向後滾動特定的軸到一個特定位置(默認滾動至0軸)。
(1)1軸滾動到0軸 :(x,y,z) 2*3*4——> (y,x,z)3*2*4
(2)2軸滾動到0軸 :(x,y,z)2*3*4 ——> (z,x,y)4*2*3
(3)爲什麼0軸滾動到1軸、1軸滾動到2軸,等同於未滾動?爲什麼0軸滾動到2軸結果如此?此處懂了的小夥伴麻煩給我留言解釋一下,謝謝。