transpose()中三個軸編號的位置變化理解
transpose(a,b,c)其中a軸編號即為參考編號,垂直於a的平面即為所有平面,該平面上的數據再根據b,c相對於(0,1,2)的位置關系進行改變,下面以實例舉例說明
A.transpose(0,1,2)對應的就是arr數組原形
In [8]: arr.transpose(0,1,2)
Out[8]:
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]]])
B.transpose(0,2,1),即以0為參考編號,數組0-1和0-2即為所求平面數組,但是2,1相對於(0,1,2)后面的軸編號進行了交換,所以數組0-1/0-2要以對角線進行.T轉置(與二維數組的轉置一樣),所以結果如下。其余同理。
In [9]: arr.transpose(0,2,1)
Out[9]:
array([[[ 0, 4, 8],
[ 1, 5, 9],
[ 2, 6, 10],
[ 3, 7, 11]],
[[12, 16, 20],
[13, 17, 21],
[14, 18, 22],
[15, 19, 23]]])
C.以transpose(2,1,0)來驗證以上操作。2為視角,數組2-1/2-2/2-3/2-4即為所求平面,再以1為視角,數組1-1/1-2即為所求平面,2-1與1-1兩個平面的交線是[0,12]
In [10]: arr.transpose(2,1,0)
Out[10]:
array([[[ 0, 12],
[ 4, 16],
[ 8, 20]],
[[ 1, 13],
[ 5, 17],
[ 9, 21]],
[[ 2, 14],
[ 6, 18],
[10, 22]],
[[ 3, 15],
[ 7, 19],
[11, 23]]])
參考:https://www.cnblogs.com/sunshinewang/p/6893503.html