transpose()

这个函数如果括号内不带参数,就相当于转置,和.T效果一样,而今天主要来讲解其带参数。

我们看如下一个numpy的数组:

`arr=np.arange(16).reshape((2,2,4))

arr=

array([[[ 0, 1, 2, 3],

[ 4, 5, 6, 7]],

[[ 8, 9, 10, 11],

[12, 13, 14, 15]]])

`

那么有:

arr.transpose(2,1,0)

array([[[ 0, 8],

[ 4, 12]],

[[ 1, 9],

[ 5, 13]],

[[ 2, 10],

[ 6, 14]],

[[ 3, 11],

[ 7, 15]]])

为什么会是这样的结果呢,这是因为arr这个数组有三个维度,三个维度的编号对应为(0,1,2),比如这样,我们需要拿到7这个数字,怎么办,肯定需要些三个维度的值,7的第一个维度为0,第二个维度为1,第三个3,所以arr[0,1,3]则拿到了7

arr[0,1,3] #结果就是7

这下应该懂了些吧,好,再回到transpose()这个函数,它里面就是维度的排序,比如我们后面写的transpose(2,1,0),就是把之前第三个维度转为第一个维度,之前的第二个维度不变,之前的第一个维度变为第三个维度,好那么我们继续拿7这个值来说,之前的索引为[0,1,3],按照我们的转换方法,把之前的第三维度变为第一维度,之前的第一维度变为第三维度,那么现在7的索引就是(3,1,0)

同理所有的数组内的数字都是这样变得,这就是transpose()内参数的变化。

理解了上面,再来理解swapaxes()就很简单了,swapaxes接受一对轴编号,其实这里我们叫一对维度编号更好吧,比如:

arr.swapaxes(2,1) #就是将第三个维度和第二个维度交换

array([[[ 0, 4],

[ 1, 5],

[ 2, 6],

[ 3, 7]],

[[ 8, 12],

[ 9, 13],

[10, 14],

[11, 15]]])

还是那我们的数字7来说,之前的索引是(0,1,3),那么交换之后,就应该是(0,3,1)

多说一句,其实numpy高维数组的切片也是这样选取维度的。

以上这篇对numpy中的transpose和swapaxes函数详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

python中transpose函数_对numpy中的transpose和swapaxes函数详解相关推荐

  1. python中rand和randn_基于numpy.random.randn()与rand()的区别详解

    下面为大家分享一篇基于numpy.random.randn()与rand()的区别详解,具有很好的参考价值,希望对大家有所帮助.一起过来看看吧 numpy中有一些常用的用来产生随机数的函数,randn ...

  2. sum函数python后面很多小数_解决Numpy中sum函数求和结果维度的问题

    使用Numpy(下面简称np)中的sum函数对某一维度求和时,由于该维度会在求和后变成一个数,所以所得结果的这一维度为空. 比如下面的例子: a = np.array([[1,2,3],[4,5,6] ...

  3. python数组切片赋值_基于numpy中数组元素的切片复制方法

    代码1: #!/usr/bin/python import numpy as np arr1 = np.arange(10) print(arr1) slice_data = arr1[3:5] pr ...

  4. python布尔型数组_对numpy中布尔型数组的处理方法详解

    布尔数组的操作方式主要有两种,any用于查看数组中是否有True的值,而all则用于查看数组是否全都是True. 如果用于计算的时候,布尔量会被转换成1和0,True转换成1,False转换成0.通过 ...

  5. python 矩阵元素赋值_对numpy中数组元素的统一赋值实例

    Numpy中的数组整体处理赋值操作一直让我有点迷糊,很多时候理解的不深入.今天单独列写相关的知识点,进行总结一下. 先看两个代码片小例子: 例子1: In [2]: arr =np.empty((8, ...

  6. python数组元素赋值_对numpy中数组元素的统一赋值实例

    下面小编就为大家分享一篇对numpy中数组元素的统一赋值实例,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 Numpy中的数组整体处理赋值操作一直让我有点迷糊,很多时候理解的不深入. ...

  7. python做估值模型_通证估值模型-费雪模型与净现值模型详解

    通证估值模型-费雪模型与净现值模型详解 一.费雪模型,适合货币型通证 1)公式:MV= PQ M: 货币供应量 V: 货币流通速度 P:劳务平均价格 V:劳务总数 维基百科地址:Equation of ...

  8. python定义静态变量_对Pyhon实现静态变量全局变量的方法详解

    python不能像C++一样直接定义一个static变量或者通过extern来导入别的库的变量而实现数据共享,但是python的思想是通过模块化来解决这个问题,就是通过模块来实现全局变量. 首先新建一 ...

  9. python alpha beta 剪枝_一看就懂的 Alpha-Beta 剪枝算法详解

    Alpha-Beta剪枝用于裁剪搜索树中没有意义的不需要搜索的树枝,以提高运算速度. 假设α为下界,β为上界,对于α ≤ N ≤ β: 若 α ≤ β  则N有解. 若 α > β 则N无解. ...

最新文章

  1. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 按钮:禁用按钮
  2. 设计模式——6适配器模式(Adapter)
  3. R语言dataframe数据列中的缺失值NA的个数统计实战:特定数据列的NA值统计、所有特征的NA值统计
  4. mysql 大事务 binlog_执行大事务时出现binlog解析失败
  5. 读书笔记 UltraGrid(6)
  6. 分页请求json数据_pyspider抓取虎嗅网文章数据
  7. 111. Minimum Depth of Binary Tree 二叉树的最小深度
  8. [Spring5]IOC容器_Bean管理_bean的作用域和bean的生命周期
  9. git设置master权限_git怎么控制成员的权限?
  10. 如何用css设计出商品购物图片
  11. JEECG - 基于代码生成器的J2EE智能开发框架 续四: 查询条件SQL生成器设计思路
  12. 安装mysql8.0.11
  13. 编译OpenJDK12:globalDefinitions_visCPP.hpp(46): fatal error C1083:inttypes.h No such file or directory
  14. 计算机组成原理第五版(白中英)第三章多层次存储器 习题
  15. c#窗体程序 内嵌浏览器
  16. 单片机c语言最容易上手的教程,最好的单片机C语言快速入门教程.doc
  17. 微信小程序云开发简单介绍
  18. Windows7旗舰版SP1_64位2018.10(纯净版)
  19. Matlab数值剔除
  20. Jenkins插件配置国内镜像

热门文章

  1. linux技术理解,技术|理解 Linux 链接(二)
  2. jdbc preparestatement 执行多条语句_第二十一天JDBC编程
  3. opencv 图像 抠图 算法_人工智能 | 不用绿幕也能实时抠图,商汤等提出只需单张图像、单个模型的新方法MODNet...
  4. iphone最新款手机_泄密者称,iPhone 13将拥有苹果粉丝多年来一直想要的新功能|iphone|apple|泄密者|手机|安卓...
  5. k8s之service服务(微服务)
  6. 成本直降50% | 阿里云发布云原生网关,开启下一代网关新进程
  7. 2020年中国服装行业数据中台研究报告
  8. 蚂蚁前端的开局十年:一切都在路上
  9. 《伊拉图斯死之主》:硬核游戏也有相对放松的游戏体验
  10. Spring常见面试题(13个面试题,回答超详细)