对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版图遍历示例
Feb 19 Python
Python中使用urllib2模块编写爬虫的简单上手示例
Jan 20 Python
简单讲解Python中的字符串与字符串的输入输出
Mar 13 Python
Python面向对象特殊成员
Apr 24 Python
python logging重复记录日志问题的解决方法
Jul 12 Python
Python3非对称加密算法RSA实例详解
Dec 06 Python
简单分析python的类变量、实例变量
Aug 23 Python
解析PyCharm Python运行权限问题
Jan 08 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
Feb 29 Python
Python统计学一数据的概括性度量详解
Mar 03 Python
详解pytorch tensor和ndarray转换相关总结
Sep 03 Python
Python OpenCV实现传统图片格式与base64转换
Jun 13 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
英雄试炼之肉山谷—引领RPG新潮流
2020/04/20 DOTA
全世界最小的php网页木马一枚 附PHP木马的防范方法
2009/10/09 PHP
PHP 提取图片img标记中的任意属性的简单实例
2013/12/10 PHP
php 命名空间(namespace)原理与用法实例小结
2019/11/13 PHP
js对数字的格式化使用说明
2011/01/12 Javascript
Javascript排序算法之计数排序的实例
2014/04/05 Javascript
js实现九宫格图片半透明渐显特效的方法
2015/02/16 Javascript
JavaScript开发者必备的10个Sublime Text插件
2016/02/27 Javascript
快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突
2016/04/15 Javascript
Angular2从搭建环境到开发步骤详解
2016/10/17 Javascript
利用JQuery实现datatables插件的增加和删除行功能
2017/01/06 Javascript
在 Node.js 中使用原生 ES 模块方法解析
2017/09/19 Javascript
详解如何在webpack中做预渲染降低首屏空白时间
2018/08/22 Javascript
js监听html页面的上下滚动事件方法
2018/09/11 Javascript
vue-cli项目中使用echarts图表实例
2018/10/22 Javascript
spring+angular实现导出excel的实现代码
2019/02/27 Javascript
解决vue项目中某一页面不想引用公共组件app.vue的问题
2020/08/14 Javascript
Vue中 axios delete请求参数操作
2020/08/25 Javascript
Python如何为图片添加水印
2016/11/25 Python
json跨域调用python的方法详解
2017/01/11 Python
使用python 和 lint 删除项目无用资源的方法
2017/12/20 Python
神经网络(BP)算法Python实现及应用
2018/04/16 Python
Selenium元素的常用操作方法分析
2018/08/10 Python
解析python的局部变量和全局变量
2019/08/15 Python
python word转pdf代码实例
2019/08/16 Python
解决Pycharm的项目目录突然消失的问题
2020/01/20 Python
使用OpenCV去除面积较小的连通域
2020/07/05 Python
理解Django 中Call Stack机制的小Demo
2020/09/01 Python
澳大利亚首屈一指的鞋类品牌:Tony Bianco
2018/03/13 全球购物
华为C++笔试题
2014/08/05 面试题
管理科学大学生求职信
2013/11/13 职场文书
学生保证书范文
2014/04/28 职场文书
推荐信模板
2014/05/09 职场文书
我们的节日国庆活动方案
2014/08/19 职场文书
2016年机关单位节能宣传周活动总结
2016/04/05 职场文书
springboot读取resources下文件的方式详解
2022/06/21 Java/Android