为了理解高维数据转换,我决定自己写一篇博客。
给个例题:
transpose是用来转置的一个函数,原先矩阵是一个三维矩阵,索引顺序是x,y,z,角标分别是0、1、2,经过上图(1,0,2)调整后就成了y,x,z。
对于这个例子
0角标对应表示2个矩阵;
1角标对应表示每个矩阵有2行;
2角标对应表示每个矩阵有4列。
当1(或2)角标与0角标交换时,新建一个矩阵,将0角标作为行,1(或2)角标作为列。构成一个新矩阵(2,2):
121[0,1,2,3][4,5,6,7]2[8,9,10,11][12,13,14,15]
对应图中矩阵:
其中矩阵中的每个元素为一个(1,4)的矩阵。然后对这个矩阵进行转置得到:
121[0,1,2,3][8,9,10,11]2[4,5,6,7][12,13,14,15]
所以转后的矩阵为:
如何1角标和2角标交换,那么就直接子矩阵转置就好了。