高维矩阵转置,可能在matlab和python的mat文件交互上出现分歧,两方的顺序并不一样,需要注意,可以转置使用。
原博客:https://blog.csdn.net/u013796132/article/details/70207945
numpy中的ndarray很适合数组运算
transpose是用来转置的一个函数,很容易让人困惑,其实它是对矩阵索引顺序的一次调整。原先矩阵是一个三维矩阵,索引顺序是x,y,z,角标分别是0、1、2,经过上图(1,0,2)调整后就成了y,x,z。
理解了这些,那么swapaxes方法也就不难理解了
原博客:https://blog.csdn.net/u014041590/article/details/89159638
可以从下面三维立方体的角度思考一下。
原数组的索引顺序是x轴,y轴,z轴,即0轴,1轴,2轴。
那么当将(0,1,2)改为(1,0,2)时,即索引顺序变为y轴,x轴,z轴。以此类推。例子如下。
(1)axes=[1,0,2]表示:(x,y,z)2*3*4 ——> (y,x,z)3*2*4
(2)axes=[2,1,0]表示:(x,y,z)2*3*4 ——> (z,y,x)4*3*2
(a的转置求法一)
(a的转置求法二)
(1)0轴和1轴交换(=np.swapaxes(a,1,0)):(x,y,z)2*3*4 ——> (y,x,z)3*2*4
(2)0轴和2轴交换(=np.swapaxes(a,2,0)):(x,y,z)2*3*4 ——> (z,y,x)4*3*2
(a的转置求法三)
(1)1轴滚动到0轴 :(x,y,z) 2*3*4——> (y,x,z)3*2*4
(2)2轴滚动到0轴 :(x,y,z)2*3*4 ——> (z,x,y)4*2*3
(3)为什么0轴滚动到1轴、1轴滚动到2轴,等同于未滚动?为什么0轴滚动到2轴结果如此?此处懂了的小伙伴麻烦给我留言解释一下,谢谢。