numpy 转置_Python中Numpy.transpose()

e1f5515202e7ddb305fd7fa9292831c0.png

Numpy的transpose()函数与swapaxes()函数类似,当transpose()不传任何参数时,作用与T属性类似,arr.T即可完成数组arr的转置;swapaxes()函数接受一对轴编号作为参数,而transpose()接受的是含所有轴编号的元组,例如三维数组的np.transpose(1,0,3),即表示将0轴和1轴置换。

理解了transpose(),就相当于理解了swapaxes().

开始对于多维数组转置挺蒙的,CSDN上有关于转置的图像化介绍,即画个含0、1、2三个轴(类似于XYZ轴,在numpy中用数字表示),然后解释换轴是怎么进行的,很容易理解。但对于四维以上数组来说,就无法通过这种方式理解了。以下是个人的理解,以三维数组为例:

a56ed87de6886b85e373fc47eda0bd3a.png

原始数组是一个2X3X4的三维数组,绿红蓝表示三个轴0、1、2,标黄部分为存储的值。即索引号000存储的值为0,代表的是0轴为0、1轴为0、2轴为0这三个索引中存储的值为0,其他同理。

np.transpose(1,0,2)表示将0轴和1轴置换。在图中即表示红色这一列与绿色这一列互换,其他位置不变,因置换导致索引顺序变化,原来的1轴变成新的0轴,原来的0轴变成新的1轴,重新按新的(0-1-2)轴排序,即可得到最终结果。可输入以下代码验证结果:

import numpy as np

print(np.arange(24).reshape(2,3,4)

print(np.arange(24).reshape(2,3,4).transpose(1,0,2))

看看输出结果是不是如图中的一致。

同样,使用np.transpose(2,1,0)验证结果是不是如图中所示。

理解了三维数组,推广到四维甚至n维,就不难理解了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值