python之transpose()函数

python 专栏收录该内容
2 篇文章 0 订阅

transpose 的原理其实是根据维度(shape)索引决定的,举个栗子:

x = np.arange(4).reshape((2,2)) //生成一个2x2的数组
print(x)
[[0 1]   
[2 3]]
我们生成了一个维度为二维的数组,其中有两个索引值(矩阵的行与列)。

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

x = np.arange(4).reshape((2,2))
x = np.transpose(x) 
print(x)
[[0 2]
 [1 3]]
我们可以直观的看到,数组的行列索引值对换,1的位置从x(0,1)跑到了x(1,0)。

那么三维数组呢?

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

x = np.arange(12).reshape((2,2,3))  //生成一个2x2x3的数组
print(x)
[[[ 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)

我们来看实例代码:

x = np.arange(12).reshape((2,2,3))
print(x)
[[[ 0  1  2]
  [ 3  4  5]]
 [[ 6  7  8]
  [ 9 10 11]]]
 
x = np.transpose(x,(1,0,2))  //transpose()函数的第二个参数就是改变索引值的地方
print(x)
[[[ 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)

 

无论四维、五维……都可以用这个原理分析。
————————————————
版权声明:本文为CSDN博主「DeepGym」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37377691/article/details/80086480

  • 0
    点赞
  • 0
    评论
  • 4
    收藏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值