python 详解numpy中transpose()函数

详解numpy中transpose函数


transpose()函数的作用就是调换数组的行列值的索引值,类似于求矩阵的转置.

二维数组

直接上实例

import numpy as np

#生成一个2x2的数组
x1 = np.arange(4).reshape((2,2))
print("x1:\n",x1,"\n")

x1:
 [[0 1]
 [2 3]] 
 

我们生成了一个维度为二维数组,其中有两个索引值(矩阵的行与列)。
加入transpose

import numpy as np

#生成一个2x2的数组
x1 = np.arange(4).reshape((2,2))
print("x1:\n",x1,"\n")

x2 = np.transpose(x2) 
print("x2:\n",x2)
x1:
 [[0 1]
 [2 3]] 

x2:
 [[0 2]
 [1 3]]

我们可以直观的看到,数组的行列索引值对换,1的位置从x(0,1)跑到了x(1,0)。

三维数组

我们继续生成一个三维的数组:

import numpy as np

#生成一个2x2x3的数组
x1 = np.arange(12).reshape((2,2,3))
print("x1:\n",x1,"\n")
x1:
 [[[ 0  1  2]
  [ 3  4  5]]

 [[ 6  7  8]
  [ 9 10 11]]] 

我们从高中数学知道三维由x轴、y轴以及z轴组成。
假设三维数组当中的索引值为x,y,z
transpose()函数的作用就是调换x,y,z的位置,也就是数组的索引值。
所以我们正常的数组索引值为(0,1,2),等于(x,y,z)
我们来看实例代码:

import numpy as np

#生成一个2x2x3的数组
x1 = np.arange(12).reshape((2,2,3))
print("x1:\n",x1,"\n")
# transpose()函数的第二个参数就是改变索引值的地方
x2 = np.transpose(x1,(1,0,2))
print("x2\n",x2,"\n")
x1:
 [[[ 0  1  2]
  [ 3  4  5]]

 [[ 6  7  8]
  [ 9 10 11]]] 

x2
 [[[ 0  1  2]
  [ 6  7  8]]

 [[ 3  4  5]
  [ 9 10 11]]] 

通过transpose()函数改变了x的索引值为(1,0,2),对应(y,x,z)
索引改变后原本y的值和x的值对换了。
有上面代码的数字7为例,原本的7的位置索引为(1,0,1),通过transpose(x,(1,0,2))索引改变为(0,1,1)
无论四维、五维……都可以用这个原理分析。
懂了吧?原理其实很简单对不对!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CSPhD-winston-杨帆

给我饭钱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值