对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 random模块常用方法
Nov 03 Python
利用Python绘制数据的瀑布图的教程
Apr 07 Python
用Python程序抓取网页的HTML信息的一个小实例
May 02 Python
python使用pycharm环境调用opencv库
Feb 11 Python
django中的HTML控件及参数传递方法
Mar 20 Python
python range()函数取反序遍历sequence的方法
Jun 25 Python
对Python中for复合语句的使用示例讲解
Nov 01 Python
Python从文件中读取数据的方法讲解
Feb 14 Python
python中的 zip函数详解及用法举例
Feb 16 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
Mar 08 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
Apr 13 Python
Python字典dict常用方法函数实例
Nov 09 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
用PHP编程语言开发动态WAP页面
2006/10/09 PHP
dedecms模板标签代码官方参考
2007/03/17 PHP
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
php curl 上传文件代码实例
2015/04/27 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
Laravel统计一段时间间隔的数据方法
2019/10/09 PHP
IE6中使用position导致页面变形的解决方案(js代码)
2011/01/09 Javascript
关于jQuery UI 使用心得及技巧
2012/10/10 Javascript
JavaScript 用cloneNode方法克隆节点的代码
2012/10/15 Javascript
Google Map V3 绑定气泡窗口(infowindow)Dom事件实现代码
2013/04/26 Javascript
ExtJs设置GridPanel表格文本垂直居中示例
2013/07/15 Javascript
javascript搜索框点击文字消失失焦时文本出现
2014/09/18 Javascript
jQuery实现“扫码阅读”功能
2015/01/21 Javascript
js HTML5 Canvas绘制转盘抽奖
2020/09/13 Javascript
用原生js统计文本行数的简单示例
2016/08/19 Javascript
JS中微信小程序自定义底部弹出框
2016/12/22 Javascript
jquery插件ContextMenu设置右键菜单
2017/03/13 Javascript
Node.js Express安装与使用教程
2018/05/11 Javascript
[01:41]DOTA2 2015国际邀请赛中国区预选赛第三日战报
2015/05/28 DOTA
[10:24]郎朗助力完美“圣”典,天籁交织奏响序曲
2016/12/18 DOTA
谈谈如何手动释放Python的内存
2016/12/17 Python
Python3中列表list合并的四种方法
2019/04/19 Python
pyqt5 使用label控件实时显示时间的实例
2019/06/14 Python
Pytorch抽取网络层的Feature Map(Vgg)实例
2019/08/20 Python
Python 项目转化为so文件实例
2019/12/23 Python
Python中求对数方法总结
2020/03/10 Python
JAVA及PYTHON质数计算代码对比解析
2020/06/10 Python
CSS3教程(9):设置RGB颜色
2009/04/02 HTML / CSS
关于canvas绘制模糊问题的解决方法
2019/09/24 HTML / CSS
护理专业应届毕业生推荐信
2013/11/15 职场文书
材料工程专业毕业生求职信
2014/03/04 职场文书
外贸专业求职信
2014/03/09 职场文书
党的群众路线教育实践活动查摆问题及整改措施
2014/10/10 职场文书
离职感谢信
2015/01/21 职场文书
2016年敬老月活动总结
2016/04/05 职场文书
python自然语言处理之字典树知识总结
2021/04/25 Python