打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
详解numpy中transpose()函数

今天在网上搜寻了许多博客,始终没有真正理解numpy中的transpose()函数,

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

  1. x = np.arange(4).reshape((2,2)) //生成一个2x2的数组
  2. print(x)
  3. [[0 1]
  4. [2 3]]

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

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

  1. x = np.arange(4).reshape((2,2))
  2. x = np.transpose(x)
  3. print(x)
  4. [[0 2]
  5.  [1 3]]

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

那么三维数组呢?

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

  1. x = np.arange(12).reshape((2,2,3)) //生成一个2x2x3的数组
  2. print(x)
  3. [[[ 0  1  2]
  4.   [ 3  4  5]]
  5. [[ 6  7  8]
  6.   [ 9 10 11]]]

我们从高中数学知道三维由x轴、y轴以及z轴组成。

假设三维数组当中的索引值为x,y,z

transpose()函数的作用就是调换x,y,z的位置,也就是数组的索引值。

所以我们正常的数组索引值为(0,1,2),等于(x,y,z)

我们来看实例代码:

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

无论四维、五维……都可以用这个原理分析。

懂了吧?原理其实很简单对不对!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python中NumPy基础使用
Python基础数据处理库
Python数据分析之numpy学习(一)
入门numpy(25﹪-50﹪)【解读numpy官方文档】
numpy 简介
技术图文:NumPy 的简单入门教程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服