对numpy中的transpose和swapaxes函数详解


Posted in Python onAugust 02, 2018

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 相关文章推荐
windows下wxPython开发环境安装与配置方法
Jun 28 Python
python搜索指定目录的方法
Apr 29 Python
python开发之thread实现布朗运动的方法
Nov 11 Python
python 调用HBase的简单实例
Dec 18 Python
python链接oracle数据库以及数据库的增删改查实例
Jan 30 Python
windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)
Feb 21 Python
Python实现定时执行任务的三种方式简单示例
Mar 30 Python
python打开使用的方法
Sep 30 Python
基于python修改srt字幕的时间轴
Feb 03 Python
Python逐行读取文件内容的方法总结
Feb 14 Python
Python3 获取文件属性的方式(时间、大小等)
Mar 12 Python
python 远程执行命令的详细代码
Feb 15 Python
Numpy 改变数组维度的几种方法小结
Aug 02 #Python
python 字典中取值的两种方法小结
Aug 02 #Python
python 剪切移动文件的实现代码
Aug 02 #Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
Aug 02 #Python
Python实现两个list求交集,并集,差集的方法示例
Aug 02 #Python
python爬虫框架scrapy实现模拟登录操作示例
Aug 02 #Python
python爬虫之线程池和进程池功能与用法详解
Aug 02 #Python
You might like
星际争霸 Starcraft 游戏介绍
2020/03/14 星际争霸
PHP扩展模块memcached长连接使用方法分析
2014/12/24 PHP
Ubuntu中搭建Nginx、PHP环境最简单的方法
2015/03/05 PHP
简单解析PHP程序的运行流程
2016/06/23 PHP
Yii框架中用response保存cookie,用request读取cookie的原理解析
2019/09/04 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
javascript实现二分查找法实现代码
2007/11/12 Javascript
JQuery textlimit 显示用户输入的字符数 限制用户输入的字符数
2009/05/14 Javascript
cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失
2009/06/04 Javascript
js给页面加style无效果的解决方法
2014/01/20 Javascript
JavaScript中伪协议 javascript:使用探讨
2014/07/18 Javascript
js识别不同浏览器基于userAgent做判断
2014/07/29 Javascript
JSON格式化输出
2014/11/10 Javascript
Javascript中获取对象的原型对象的方法小结
2015/02/25 Javascript
javascript正则表达式中的replace方法详解
2015/04/20 Javascript
尝试动手制作javascript放大镜效果
2015/12/25 Javascript
jQuery模拟360浏览器切屏效果幻灯片(附demo源码下载)
2016/01/29 Javascript
[原创]JQuery 在表单提交之前修改 提交的值
2016/04/14 Javascript
javascript鼠标跟随运动3种效果(眼球效果,苹果菜单,方向跟随)
2016/10/27 Javascript
JavaScript实现使用Canvas绘制图形的基本教程
2016/10/27 Javascript
js上下视差滚动简单实现代码
2017/03/07 Javascript
详解js访问对象的属性和方法
2018/10/25 Javascript
vue2路由方式--嵌套路由实现方法分析
2020/03/06 Javascript
js实现双人五子棋小游戏
2020/05/28 Javascript
vue-cli或vue项目利用HBuilder打包成移动端app操作
2020/07/29 Javascript
python3实现短网址和数字相互转换的方法
2015/04/28 Python
Python使用MONGODB入门实例
2015/05/11 Python
python解释器spython使用及原理解析
2019/08/24 Python
Python TestSuite生成测试报告过程解析
2020/07/23 Python
全球最受追捧的运动服品牌领先数字目的地:Stylerunner
2020/11/25 全球购物
工艺工程师工作职责
2013/11/23 职场文书
石油工程专业毕业生求职信
2014/04/13 职场文书
巴黎圣母院读书笔记
2015/06/26 职场文书
Django模型层实现多表关系创建和多表操作
2021/07/21 Python
nginx结合openssl实现https的方法
2021/07/25 Servers
python数字图像处理:图像简单滤波
2022/06/28 Python