Numpy下三维数组转置

高维矩阵转置,可能在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、numpy.transpose(arr, axes)用于对换数组的维度。参数axes是整数列表对应维度。

(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的转置求法二)

2、numpy.swapaxes(arr, axis1, axis2)用于交换数组的两个轴。

(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的转置求法三)

3、numpy.rollaxis(arr, axis, start)向后滚动特定的轴到一个特定位置(默认滚动至0轴)。

(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轴结果如此?此处懂了的小伙伴麻烦给我留言解释一下,谢谢。

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值