numpy.transpose对三维数组的转置方法


Posted in Python onApril 17, 2018

如下所示:

import numpy as np

三维数组

arr1 = np.arange(16).reshape((2, 2, 4)) 
#[[[ 0 1 2 3] 
# [ 4 5 6 7]] 
 
# [[ 8 9 10 11] 
# [12 13 14 15]]] 
 
arr2=arr1.transpose((1,0,2)) 
#[[[ 0 1 2 3] 
# [ 8 9 10 11]] 
# 
# [[ 4 5 6 7] 
# [12 13 14 15]]]

正序为(0,1,2),数组为

#[[[ 0 1 2 3] 
# [ 4 5 6 7]] 
 
# [[ 8 9 10 11] 
# [12 13 14 15]]]

为什么进过tanspose(1,0,2),数组变为

#[[[ 0 1 2 3] 
# [ 8 9 10 11]] 
# 
# [[ 4 5 6 7] 
# [12 13 14 15]]]

仔细观察之后,可以看到转置后的数组和转置前的数组的区别就是第一页的第二行和第二页的第一行对换了,可是为什么?

当我用arr1[0,1,0],索引值为4

当我用arr2[1,0,0],索引值为4

对比索引参数表的变化和正序和转置序的不同似乎存在某种联系

对于arr1数组,索引参数表[0,0,x]可以表示第一页的第一行,当前两个参数对换之后,同一个元素的索引参数表并没有变化

故arr2的第一页第一行和arr1的第一页第一行相同

对于arr1数组,索引参数表[0,1,x]可以表示第一页第二行,当前两个参数对换之后,同一个元素的索引值比如[0,1,0]变为[1,0,0],

这就是解释了索引值4的索引参数表的不同

大概就是这个思路所以transpose(1,0,2),数组的第一页第二行和第二页第一行对换

后面的四种转置方式也大致是这个思路,仔细观察一下,理解起来应该不难

arr3=arr1.transpose((0,2,1)) 
 
# [[[ 0 4] 
# [ 1 5] 
# [ 2 6] 
# [ 3 7]] 
# 
# [[ 8 12] 
# [ 9 13] 
# [10 14] 
# [11 15]]] 
 
arr4=arr1.transpose((2,0,1)) 
#[[[ 0 4] 
# [ 8 12]] 
# 
# [[ 1 5] 
# [ 9 13]] 
# 
# [[ 2 6] 
# [10 14]] 
# 
# [[ 3 7] 
# [11 15]]]

这里要注意的是,arr4数组变成4页,这是因为页码和行码对换之后,

页码从数量2,变成了4

而行码从数量4,变成了2

arr5=arr1.transpose((2,1,0)) 
#[[[ 0 8] 
# [ 4 12]] 
# 
# [[ 1 9] 
# [ 5 13]] 
# 
# [[ 2 10] 
# [ 6 14]] 
# 
# [[ 3 11] 
# [ 7 15]]] 
 
arr6=arr1.transpose((1,2,0)) 
#[[[ 0 8] 
# [ 1 9] 
# [ 2 10] 
# [ 3 11]] 
# 
# [[ 4 12] 
# [ 5 13] 
# [ 6 14] 
# [ 7 15]]]

另外,转置(2,0,1)可以看成,先转置(0,2,1)再转置(1,0,2)

转置(2,1,0)可以看成,先转置(1,0,2),然后转置(0,2,1),最后转置(1,0,2)

转置(1,2,0)可以看成,先转置(1,0,2),在转置(0,2,1)

代码可以写成

arr4=arr1.transpose(0,2,1).transpose(1,0,2)
#[[[ 0 4]
# [ 8 12]]
#
# [[ 1 5]
# [ 9 13]]
#
# [[ 2 6]
# [10 14]]
#
# [[ 3 7]
# [11 15]]]

结果一样!

以上这篇numpy.transpose对三维数组的转置方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中使用第三方库xlrd来读取Excel示例
Apr 05 Python
Python实现截屏的函数
Jul 26 Python
Python制作简单的网页爬虫
Nov 22 Python
深度定制Python的Flask框架开发环境的一些技巧总结
Jul 12 Python
使用python在本地电脑上快速处理数据
Jun 22 Python
python matplotlib中文显示参数设置解析
Dec 15 Python
深入理解Python爬虫代理池服务
Feb 28 Python
Python实现定时执行任务的三种方式简单示例
Mar 30 Python
Python使用jupyter notebook查看ipynb文件过程解析
Jun 02 Python
详解用python -m http.server搭一个简易的本地局域网
Sep 24 Python
python实现经典排序算法的示例代码
Feb 07 Python
Python如何使用神经网络进行简单文本分类
Feb 25 Python
python获取酷狗音乐top500的下载地址 MP3格式
Apr 17 #Python
Python中的上下文管理器和with语句的使用
Apr 17 #Python
Python实现读取字符串按列分配后按行输出示例
Apr 17 #Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
Apr 17 #Python
Numpy掩码式数组详解
Apr 17 #Python
对numpy中布尔型数组的处理方法详解
Apr 17 #Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
Apr 17 #Python
You might like
PHP 全角转半角实现代码
2010/05/16 PHP
Laravel框架实现超简单的分页效果示例
2019/02/08 PHP
零基础学JavaScript最新动画教程+iso光盘下载
2008/01/22 Javascript
jquery 事件冒泡的介绍以及如何阻止事件冒泡
2012/12/25 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
2013/11/30 Javascript
原生js和jquery中有关透明度设置的相关问题
2014/01/08 Javascript
js动态往表格的td中添加图片并注册事件
2014/06/12 Javascript
教你用AngularJS框架一行JS代码实现控件验证效果
2014/06/23 Javascript
Node.js如何自动审核团队的代码
2016/07/20 Javascript
浅谈JavaScript 数据属性和访问器属性
2016/09/01 Javascript
使用bootstrap validator的remote验证代码经验分享(推荐)
2016/09/21 Javascript
Bootstrap字体图标无法正常显示的解决方法
2016/10/08 Javascript
javascript中call,apply,bind函数用法示例
2016/12/19 Javascript
Bootstrap table简单使用总结
2017/02/15 Javascript
关于Vue.nextTick()的正确使用方法浅析
2017/08/25 Javascript
解决webpack+Vue引入iView找不到字体文件的问题
2018/09/28 Javascript
Node.js实现批量下载图片简单操作示例
2020/01/18 Javascript
vue中英文切换实例代码
2020/01/21 Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
2020/02/11 Javascript
JavaScript观察者模式原理与用法实例详解
2020/03/10 Javascript
redux处理异步action解决方案
2020/03/22 Javascript
python OpenCV学习笔记直方图反向投影的实现
2018/02/07 Python
Python实现线程状态监测简单示例
2018/03/28 Python
想学python 这5本书籍你必看!
2018/12/11 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
2019/05/07 Python
Python Excel处理库openpyxl使用详解
2019/05/09 Python
在Pycharm中使用GitHub的方法步骤
2019/06/13 Python
python爬取音频下载的示例代码
2020/10/19 Python
python中strip(),lstrip(),rstrip()函数的使用讲解
2020/11/17 Python
美国著名的团购网站:Woot
2016/08/02 全球购物
2013的个人自我评价
2013/12/26 职场文书
债务纠纷委托书范本
2014/10/14 职场文书
整改报告格式
2014/11/06 职场文书
升学宴家长致辞
2015/07/27 职场文书
党员干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
JS实现页面炫酷的时钟特效示例
2022/08/14 Javascript