import numpy as np;
a=np.arange(16).reshape(2,2,4)
b={0:2,1:0,2:1}
c=a.transpose(2,0,1)
if a[0][1][2]==c[b[0]][b[1]][b[2]]:
print("right")
用数学表达就是 : 我们可以把转置看成一种映射,比如我的c和a对应的映射就是字典b;
那么假如某个索引在a中为(x,y,z);那么转置后对应的元素在c中这样得到x对应第0个元素,从字典b中可以看到0映射为2,所以在新的c中的索引第2位为x,同理判断其他的,可以对照下面的图来看;
如果我们把x,y,z分别对应最大的索引值,就很容易理解shape的变化了。