对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中使用dict和set方法的教程
Apr 27 Python
简述Python中的面向对象编程的概念
Apr 27 Python
Python自动生产表情包
Mar 17 Python
python 获取当天每个准点时间戳的实例
May 22 Python
浅谈Python中的全局锁(GIL)问题
Jan 11 Python
python利用re,bs4,requests模块获取股票数据
Jul 29 Python
python时间日期操作方法实例小结
Feb 06 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
Feb 17 Python
python基于exchange函数发送邮件过程详解
Nov 06 Python
解决python3中os.popen()出错的问题
Nov 19 Python
Python开发工具Pycharm的安装以及使用步骤总结
Jun 24 Python
Django路由层如何获取正确的url
Jul 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
discuz7 phpMysql操作类
2009/06/21 PHP
PHP 配置文件中open_basedir选项作用
2009/07/19 PHP
析构函数与php的垃圾回收机制详解
2013/10/28 PHP
摘自织梦CMS中的图片处理类
2015/08/08 PHP
php微信公众号开发之关键词回复
2018/10/20 PHP
jQuery 使用手册(三)
2009/09/23 Javascript
JQuery 遮罩层实现(mask)实现代码
2010/01/09 Javascript
基于JQuery 滑动与动画的说明介绍
2013/04/18 Javascript
js实现俄罗斯方块小游戏分享
2014/01/31 Javascript
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
js使用post 方式打开新窗口
2015/02/26 Javascript
AngularJS中$interval的用法详解
2016/02/02 Javascript
Bootstrap模仿起筷首页效果
2016/05/09 Javascript
EasyUI Pagination 分页的两种做法小结
2016/07/09 Javascript
JS实现table表格内针对某列内容进行即时搜索筛选功能
2018/05/11 Javascript
微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】
2019/05/05 Javascript
基于Vue全局组件与局部组件的区别说明
2020/08/11 Javascript
Python XML RPC服务器端和客户端实例
2014/11/22 Python
python实现一次创建多级目录的方法
2015/05/15 Python
python类的实例化问题解决
2019/08/31 Python
用python画一只可爱的皮卡丘实例
2019/11/21 Python
浅谈django框架集成swagger以及自定义参数问题
2020/07/07 Python
call在Python中改进数列的实例讲解
2020/12/09 Python
Sneaker Studio罗马尼亚网站:购买运动鞋
2018/11/04 全球购物
市场营销专业毕业生自荐信
2013/11/02 职场文书
简单英文演讲稿
2014/01/01 职场文书
幼儿教师考核制度
2014/01/25 职场文书
圣诞节红领巾广播稿
2014/02/03 职场文书
客运企业隐患排查工作方案
2014/06/06 职场文书
我心目中的好老师活动方案
2014/08/19 职场文书
大学军训决心书
2015/02/05 职场文书
个人总结与自我评价2015
2015/03/11 职场文书
员工家属慰问信
2015/03/24 职场文书
学生通报表扬范文
2015/05/04 职场文书
贷款工作证明模板
2015/06/12 职场文书
Pandas实现DataFrame的简单运算、统计与排序
2022/03/31 Python