python中的np.transpose的用法

最近看python的时候对numpy中的transpose这个函数比较疑惑,通过查看其他博主的解答,自己进一步找了一下规律,现在感觉清楚多了。具体的步骤如下:

首先先建立一个 2x3x4 的多维数组
在这里插入图片描述
这个数组是三维的,这个应该没有问题。设这个数组的维数对应轴数x,y,z,即2对应x,3对应y,4对应z。可以建立下面这个表格:

对应轴数数组维数
x2
y3
z4

现在,更改上面程序中的第二行代码为:
arr.transpose(1, 0, 2)
此时,相当于将第一个轴x和第二个轴y进行交换,交换之后,可以得到下面这个表格:

对应轴数数组维数
x3
y2
z4

由此可以知道这个数组在转置之后由 2x3x4 的矩阵变成了一个 3x2x4 的矩阵,牢牢记住这一点,然后按照变化后的矩阵形式对原矩阵进行构造。下面介绍构造方法:
(0,0,x)交换第一个和第二个坐标还是(0,0,x),其中x表示这个数值的变化与前面两个数无关,仅此而已。第一个轴的变化范围原来是0和1,第二个轴原来可取的数为0,1,2,第三个轴原来可取的数为0,1,2,3。由此可以得到下面这个表格:

原坐标变换后的坐标
(0,0,x)对应(0,1,2,3)(0,0,x)
(0,1,x) 对应(4,5,6,7)(1,0,x)
(0,2,x) 对应(8,9,10,11)(2,0,x)
(1,0,x)对应(12,13,14,15)(0,1,x)
(1,1,x) 对应(16,17,18,19)(1,1,x)
(1,2,x)对应(20,21,22,23)(2,1,x)

然后按照他们之间的对应关系,按照转换后的矩阵形式写出来转换后的矩阵即可。具体如下:
明确转换后的矩阵是一个3x2x4的矩阵,即x的取值为0,1,2;y的取值为0,1;z的取值为0,1,2,3。则转换后的矩阵形式应该是下面这种格式:
第一维:(0,0,x),(0,1,x)
第二维:(1,0,x),(1,1,x)
第三维:(2,0,x),(2,1,x)
然后按照上面那个表格进行对照,把变换后的相应的数组值写下来就好,结果如下:
第一维:(0,1,2,3),(12,13,14,15)
第二维:(4,5,6,7) ,(16,17,18,19)
第三维:(8,9,10,11),(20,21,22,23)
程序运行的结果:
在这里插入图片描述

后面交换第一维和第三维,第二维和第三维也可以用这个方法进行类推。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值