对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多线程扫描端口示例
Jan 16 Python
详解python OpenCV学习笔记之直方图均衡化
Feb 08 Python
python实现五子棋小游戏
Mar 25 Python
说说如何遍历Python列表的方法示例
Feb 11 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
Feb 26 Python
使用django实现一个代码发布系统
Jul 18 Python
Django实现分页显示效果
Oct 31 Python
python实现简单井字棋小游戏
Mar 05 Python
django xadmin action兼容自定义model权限教程
Mar 30 Python
python爬虫把url链接编码成gbk2312格式过程解析
Jun 08 Python
Python实现http接口自动化测试的示例代码
Oct 09 Python
python3.9.1环境安装的方法(图文)
Feb 02 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
简单介绍下 PHP5 中引入的 MYSQLI的用途
2007/03/19 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
2014/01/14 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
2017/10/07 PHP
PHP命名空间与自动加载类详解
2018/09/04 PHP
[原创]用javascript实现检测指定目录是否存在的方法
2008/01/12 Javascript
javascript 写的一个简单的timer
2009/07/30 Javascript
jQuery EasyUI 中文API Layout(Tabs)
2010/04/27 Javascript
javascript 弹出的窗口返回值给父窗口具体实现
2013/11/23 Javascript
jquery用offset()方法获得元素的xy坐标
2014/09/06 Javascript
jQuery中:nth-child选择器用法实例
2014/12/31 Javascript
jQuery表格(Table)基本操作实例分析
2017/03/10 Javascript
如何理解jQuery中的ajaxSubmit方法
2017/03/13 Javascript
详解Angular 4.x 动态创建组件
2017/04/25 Javascript
微信小程序 按钮滑动的实现方法
2017/09/27 Javascript
vue中遇到的坑之变化检测问题(数组相关)
2017/10/13 Javascript
jquery实现购物车基本功能
2019/10/25 jQuery
js数组相减简单示例【删除a数组所有与b数组相同元素】
2020/03/04 Javascript
[02:53]DOTA2英雄基础教程 山岭巨人小小
2013/12/09 DOTA
Python的Django框架中使用SQLAlchemy操作数据库的教程
2016/06/02 Python
Python中使用多进程来实现并行处理的方法小结
2017/08/09 Python
微信跳一跳自动运行python脚本
2018/01/08 Python
python 将list转成字符串,中间用符号分隔的方法
2018/10/23 Python
PyQt5显示GIF图片的方法
2019/06/17 Python
python 图片去噪的方法示例
2019/07/09 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
2019/10/01 Python
pytorch制作自己的LMDB数据操作示例
2019/12/18 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
重写django的model下的objects模型管理器方式
2020/05/15 Python
Django ORM实现按天获取数据去重求和例子
2020/05/18 Python
python实现登录与注册系统
2020/11/30 Python
婚礼主持词开场白
2014/03/13 职场文书
村抢险救灾方案
2014/05/09 职场文书
2014国庆节演讲稿:祖国在我心中(400字)
2014/09/25 职场文书
2015年行风建设工作总结
2015/05/15 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书
使用opencv-python如何打开USB或者笔记本前置摄像头
2022/06/21 Python