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