对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 相关文章推荐
python连接远程ftp服务器并列出目录下文件的方法
Apr 01 Python
详解在Python程序中自定义异常的方法
Oct 16 Python
详解Python中open()函数指定文件打开方式的用法
Jun 04 Python
详谈python http长连接客户端
Jun 12 Python
python在非root权限下的安装方法
Jan 23 Python
python使用Tesseract库识别验证
Mar 21 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
May 10 Python
python中协程实现TCP连接的实例分析
Oct 14 Python
python 提取文件指定列的方法示例
Aug 07 Python
pandas的to_datetime时间转换使用及学习心得
Aug 11 Python
pycharm不能运行.py文件的解决方法
Feb 12 Python
Java Unsafe类实现原理及测试代码
Sep 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
一个用于mysql的数据库抽象层函数库
2006/10/09 PHP
php 无限级数据JSON格式及JS解析
2010/07/17 PHP
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
2013/11/26 PHP
PHP实现图片自动清理的方法
2015/07/08 PHP
php连接oracle数据库的核心步骤
2016/05/26 PHP
php处理单文件、多文件上传代码分享
2016/08/24 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
Laravel 类和接口注入相关的代码
2019/10/15 PHP
读jQuery之十 事件模块概述
2011/06/27 Javascript
ANT 压缩(去掉空格/注释)JS文件可提高js运行速度
2013/04/15 Javascript
js中把JSON字符串转换成JSON对象最好的方法
2014/03/21 Javascript
JS将光标聚焦在文本最后的实现代码
2014/03/28 Javascript
jQery使网页在显示器上居中显示适用于任何分辨率
2014/06/09 Javascript
通过jquery-ui中的sortable来实现拖拽排序的简单实例
2016/05/24 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
2016/06/08 Javascript
jQuery向webApi提交post json数据
2017/01/16 Javascript
three.js实现围绕某物体旋转
2017/01/25 Javascript
Javascript基础回顾之(三) js面向对象
2017/01/31 Javascript
jQuery实现简单的计时器功能实例分析
2017/08/29 jQuery
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
浅谈 Vue 项目优化的方法
2017/12/16 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
2018/11/08 Javascript
layui-tree实现Ajax异步请求后动态添加节点的方法
2019/09/23 Javascript
[49:08]Secret vs VP 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
老生常谈Python之装饰器、迭代器和生成器
2017/07/26 Python
Django 根据数据模型models创建数据表的实例
2018/05/27 Python
浅析python的优势和不足之处
2018/11/20 Python
python远程连接MySQL数据库
2019/04/19 Python
python 制作网站筛选工具(附源码)
2021/01/21 Python
牵手50新加坡:专为黄金岁月的单身人士而设的交友网站
2020/08/16 全球购物
Wiggle澳大利亚:自行车、跑步、游泳商店
2020/11/07 全球购物
配件采购员岗位职责
2013/12/03 职场文书
2014年最新学习全国两会精神心得
2014/03/17 职场文书
公司投资建议书
2014/05/16 职场文书
大专生找工作自荐书
2014/06/10 职场文书
2014年质量工作总结
2014/11/22 职场文书