In [59]: arr1 = np.arange(12).reshape(2,2,3)
In [60]: arr1
Out[60]:
array([[[ 0, 1, 2],
[ 3, 4, 5]],
[[ 6, 7, 8],
[ 9, 10, 11]]])
In [61]: arr1.shape #看形状
Out[61]: (2, 2, 3) #说明这是一个2*2*3的数组(矩阵),返回的是一个元组,可以对元组进行索引,也就是0,1,2
In [62]: arr1.transpose((1,0,2))
Out[62]:
array([[[ 0, 1, 2],
[ 6, 7, 8]],
[[ 3, 4, 5],
[ 9, 10, 11]]])
arr1.transpose((1,0,2))即把第1维的数据放到第0维,第0维的数据放到第1维,第二维不动。
第一个数0的坐标是(0,0,0),变换之后还是(0,0,0)
第二个数1的坐标是(0,0,1),变换之后还是(0,0,1)
所以(0,0,:)和(1,1,:)都不变化
3本来是(0,1,0),变换之后为(1,0,0)
所以最终结果,即把(0,1,:)和(1,0,:)交换位置