对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 相关文章推荐
操作Windows注册表的简单的Python程序制作教程
Apr 07 Python
Python中自定义函数的教程
Apr 27 Python
Python实现快速排序算法及去重的快速排序的简单示例
Jun 26 Python
python SSH模块登录,远程机执行shell命令实例解析
Jan 12 Python
python 实现敏感词过滤的方法
Jan 21 Python
Python基本数据结构之字典类型dict用法分析
Jun 08 Python
python调用其他文件函数或类的示例
Jul 16 Python
python Django中models进行模糊查询的示例
Jul 18 Python
python web框架 django wsgi原理解析
Aug 20 Python
python中time库的实例使用方法
Oct 31 Python
Pytorch中实现只导入部分模型参数的方式
Jan 02 Python
基于Tensorflow一维卷积用法详解
May 22 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
是否存在第一台收音机的说法
2021/03/01 无线电
关于拼配咖啡,你要知道
2021/03/03 咖啡文化
在PHP3中实现SESSION的功能(三)
2006/10/09 PHP
php读取文件内容的几种方法详解
2013/06/26 PHP
php递归获取目录内文件(包含子目录)封装类分享
2013/12/25 PHP
php中file_exists函数使用详解
2015/05/08 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
2016/07/13 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
2016/12/14 PHP
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
2011/04/12 Javascript
使用原生javascript创建通用表单验证——更锋利的使用dom对象
2011/09/13 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
关于javascript事件响应的基础语法总结(必看篇)
2016/12/26 Javascript
JavaScript正则表达式exec/g实现多次循环用法示例
2017/01/17 Javascript
vue实现单选和多选功能
2017/08/11 Javascript
微信小程序实现topBar底部选择栏效果
2018/07/20 Javascript
jQuery实现当拉动滚动条到底部加载数据的方法分析
2019/01/24 jQuery
详解jenkins自动化部署vue
2019/05/14 Javascript
微信小程序开发技巧汇总
2019/07/15 Javascript
浅谈vue-props的default写不写有什么区别
2020/08/09 Javascript
JS实现可以用键盘方向键控制的动画
2020/12/11 Javascript
element 动态合并表格的步骤
2020/12/31 Javascript
python scp 批量同步文件的实现方法
2019/01/03 Python
Python unittest单元测试框架实现参数化
2020/04/29 Python
基于pycharm实现批量修改变量名
2020/06/02 Python
CSS3实现多背景模拟动态边框的效果
2016/11/08 HTML / CSS
Orvis官网:自1856年以来,优质服装、飞钓装备等
2018/12/17 全球购物
中国旅游网站:途牛旅游网
2019/09/29 全球购物
校园安全广播稿
2014/02/08 职场文书
学习决心书范文
2014/03/11 职场文书
协议书的格式
2014/04/23 职场文书
个人租房协议书样本
2014/10/01 职场文书
2014年世界艾滋病日宣传活动总结
2014/11/18 职场文书
罚站检讨书
2015/01/29 职场文书
防汛通知
2015/04/25 职场文书
讲文明倡议书
2015/04/29 职场文书
vue3不同环境下实现配置代理
2022/05/25 Vue.js