numpy学习——难点解析(二)多维数组转置解释

在numpy的使用过程中,常常会用到数组的转置,从二维数组角度来讲,是将以对角线的数据进行中心对称的转换,但是在维数组中,并不是简单的这种方式。
下面来介绍一下数组的转置应该是如何理解的:
在众多教程和视频当中,绝大部分都是以二维数组作为例子,通过讲0轴1轴,中心对称的概念来解释。
但是在个人理解中,这样反而会加大了初学者的理解难度,因此在以后可能要面对的是多维数组,不仅仅是二维数组,而且容易将思维固化。那么,从本质上讲一下转置到底是什么。
首先用几行代码和结果展示一下转置:

a = np.arange(120).reshape(2,3,4,5)
print('a的shape:',a.shape)
print('a转置后的shape:',a.T.shape)
>>>a的shape: (2, 3, 4, 5)
>>>a转置后的shape: (5, 4, 3, 2)

由此可以看出,转置实质上就是将shape顺序改变,变为相反的顺序,即维度数据的转换。
在数据方面,也会跟着格式相应的转换,从最小的数据块开始,依次按照新shape取转换。
举例:

a = np.arange(24).reshape(3,2,4,)
print(a)
print(a.T)
>>>
[[[ 0  1  2  3]
  [ 4  5  6  7]]

 [[ 8  9 10 11]
  [12 13 14 15]]

 [[16 17 18 19]
  [20 21 22 23]]]
****************************************************************************************************
[[[ 0  8 16]
  [ 4 12 20]]

 [[ 1  9 17]
  [ 5 13 21]]

 [[ 2 10 18]
  [ 6 14 22]]

 [[ 3 11 19]
  [ 7 15 23]]]

转置有三种方法:
1.使用"T"方法
2.使用"transpose"方法
3.使用"swapaxes"方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值