np.transpose函数

ranspose函数主要用来转换矩阵的维度。

首先举个二维矩阵的例子:


首先创建了一个二维的矩阵a,a的shape为(2, 3)即两行三列的意思。

接下来我们使用transpose函数,看看效果:b = a.transpose((1, 0))


首先解释下transpose函数的输入参数(1,0)含义,我们可以理解为一个索引量,原始的索引本来是(0,1),其中的0代表着a的第一个维度即2(shape[0]),其中的1代表的是a的第二个维度即3(shape[1])。现在我们输入参数(1,0)代表着我们要将矩阵a的第一个维度和第二个的维度进行调换。原来的shape为(2,3)现在调换后变成了(3,2)即三行两列。调换的shape确定后我们再将对应的参数填入即可。假设原来的矩阵中的一个元素a(i, j)现在填入b(j,i)中,就是将原来矩阵的元素按照其索引下标进行调换后填入新矩阵中,如下图所示:

a = ([[a(0,0),  a(0,1),  a(0, 2)],

         [a(1,0),  a(1,1),  a(1,2)]])

b = ([[a(0,0),  a(1,0)],          b = ([[b(0,0),  b(0,1)],

         [a(0,1),  a(1,1)],                    [b(1,0),  b(1,1)], 

         [a(0,2),  a(1,2)]])                   [b(2,0),  b(2,1)]])

看完后是不是很像我们学过性代数中的转置,确实,对于二维矩阵可以这么理解,但维度更高就变的很抽象了。下面我们在举个三维矩阵的例子:

我们创建了一个shape为(2,4,3)的三维矩阵c。接下来我们调换矩阵c的一、二维索引。

d = c.transpose((1,0,2))    # 调换一、二维索引,原本索引是(0,1,2)

调换索引前的矩阵c的shape是(2,4,3),调换矩阵c的一、二维索引后得到的d矩阵shape为(4,2,3)。d矩阵的元素值同样是将元素c[i,j,k]填入d[j,i,k]中,即将c矩阵的索引下标的第一维i和第二维j调换位置后填入d中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值