对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采集腾讯新闻实例
Jul 10 Python
python re正则表达式模块(Regular Expression)
Jul 16 Python
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
Jun 02 Python
python 移除字符串尾部的数字方法
Jul 17 Python
python Selenium实现付费音乐批量下载的实现方法
Jan 24 Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
Aug 09 Python
Django之使用celery和NGINX生成静态页面实现性能优化
Oct 08 Python
Python requests模块cookie实例解析
Apr 14 Python
python 3.8.3 安装配置图文教程
May 21 Python
Python使用Matlab命令过程解析
Jun 04 Python
Jupyter notebook 输出部分显示不全的解决方案
Apr 24 Python
Python数组变形的几种实现方法
May 30 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函数memory_get_usage获取PHP内存清耗量的方法
2011/12/06 PHP
thinkphp在模型中自动完成session赋值示例代码
2014/09/09 PHP
PHP获取youku视频真实flv文件地址的方法
2014/12/23 PHP
调试WordPress中定时任务的相关PHP脚本示例
2015/12/10 PHP
PHP缓冲区用法总结
2016/02/14 PHP
php中目录操作opendir()、readdir()及scandir()用法示例
2019/06/08 PHP
Extjs优化(二)Form表单提交通用实现
2013/04/15 Javascript
Javascript基础知识(二)事件
2014/09/29 Javascript
jQuery中closest()函数用法实例
2015/01/07 Javascript
javascript中caller和callee详解
2015/08/10 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
基于javascript实现简单的抽奖系统
2020/04/15 Javascript
深入理解JQuery中的事件与动画
2016/05/18 Javascript
js实现微博发布小功能
2017/01/12 Javascript
JavaScript获取中英文混合字符串长度的方法示例
2017/02/04 Javascript
B/S(Web)实时通讯解决方案分享
2017/04/06 Javascript
带你快速理解javascript中的事件模型
2017/08/14 Javascript
vue elementUI 表单校验的实现代码(多层嵌套)
2019/11/06 Javascript
JS实现表单中点击小眼睛显示隐藏密码框中的密码
2020/04/13 Javascript
vue自动添加浏览器兼容前后缀操作
2020/08/13 Javascript
vue下载二进制流图片操作
2020/10/26 Javascript
layui使用及简单的三级联动实现教程
2020/12/01 Javascript
[00:32]2016完美“圣”典风云人物:Maybe宣传片
2016/12/05 DOTA
python 把数据 json格式输出的实例代码
2016/10/31 Python
python smtplib模块实现发送邮件带附件sendmail
2018/05/22 Python
python pandas 对时间序列文件处理的实例
2018/06/22 Python
利用Python函数实现一个万历表完整示例
2021/01/23 Python
Kathmandu美国网站:新西兰户外运动品牌
2019/03/23 全球购物
Muziker英国:中欧最大的音乐家商店
2020/02/05 全球购物
计算机网络毕业生自荐信
2013/10/01 职场文书
市场营销专业求职信
2014/06/17 职场文书
三月雷锋月活动总结
2014/07/03 职场文书
政风行风自查自纠报告
2014/10/21 职场文书
2014年前台文员工作总结
2014/12/08 职场文书
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
2021/04/06 Oracle
Python使用psutil库对系统数据进行采集监控的方法
2021/08/23 Python