python 三维数组旋转_numpy.transpose对三维数组的转置方法
如下所示:
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 三维数组旋转_numpy.transpose对三维数组的转置方法相关推荐
- python三维数组转置_numpy.transpose对三维数组的转置方法
如下所示: import numpy as np 三维数组 arr1 = np.arange(16).reshape((2, 2, 4)) #[[[ 0 1 2 3] # [ 4 5 6 7]] # ...
- python读取文件中的数据为二维数组变量_Numpy 多维数据数组的实现
numpy包(模块)几乎总是用于Python中的数值计算.这个软件包为Python提供了高性能的向量.矩阵.张量数据类型.它是在C和Fortran中创建的,因此当计算被矢量化(用矩阵和矢量表示操作)时 ...
- python实现三维坐标旋转计算
空间三维坐标系旋转计算 计算空间三维坐标系变换一般都是利用旋转矩阵或者欧拉公式.python有个scipy库可以直接用于计算空间三维坐标变换. 支持库 pip install scipy 旋转矩阵计算 ...
- python多维数组添加元素_numpy中三维数组中加入元素后的位置详解
今天做数据处理时,遇到了从三维数组中批量加入二维数组的需求.其中三维数组在深度学习的特征数据处理时经常会使用到,所以读者有必要对该小知识点做到清楚了解并掌握.现对三维数组中的元素位置结合代码做详细归纳 ...
- Python输入(一维数组、字符串、二维数组、三维数组等)程序
Python输入的程序归类 输入一个一维数组 #输入一个数组 arr = input() num = [int(n) for n in arr.split(',')] #如果是输入一系列由空格隔开的数 ...
- python中numpy中一维二维三维数组的意思
python中numpy中一维二维三维数组的意思: 以下为一维二维三维数组图形化: 那么一维通俗点就是行(横着看)只有这个,别无二家. 二维通俗点就是行(横着看)+列(竖着看),只有这种形式. 三维比 ...
- 三维坐标 偏转_三维坐标系旋转
在做单目三维位姿估计(即估计目标物相对相机的姿态或相机相对目标物的姿态)时会用到solvepnp函数, 函数原型为:cv2.solvePnP(objectPoints, imagePoints, ca ...
- python导入txt文件并绘图-Python实现读取txt文件并画三维图简单代码示例
记忆力差的孩子得勤做笔记! 刚接触python,最近又需要画一个三维图,然后就找了一大堆资料,看的人头昏脑胀的,今天终于解决了!好了,废话不多说,直接上代码! #由三个一维坐标画三维散点 #codin ...
- python读取txt文件代码-Python实现读取txt文件并画三维图简单代码示例
记忆力差的孩子得勤做笔记! 刚接触python,最近又需要画一个三维图,然后就找了一大堆资料,看的人头昏脑胀的,今天终于解决了!好了,废话不多说,直接上代码! #由三个一维坐标画三维散点 #codin ...
- c++ 三维数组 初始化_013 JAVA 多维数组及数组的拷贝、冒泡排序、二分法查找...
1.多维数组 多维数组的元素又是数组,可以有二维.三维.甚至更多维数组 1.1二维数组的声明: 数据类型 [][] = new 数据类型[一维长度][二维长度] public class Test01 ...
最新文章
- 小蚂蚁学习mysql性能优化(4)--SQL以及索引优化--具体一些优化方法
- Codeforces 859C - Pie Rules
- java:迭代器Iterator
- python 使用win32com 操作excel
- 首次提出“智能经济形态”,与实体经济深度融合
- python 字符编码判断 chardet评测
- 【Python】Matplotlib分层绘制投影柱状图
- jquery常用事件——幕布
- shell脚本练习实例
- java fx设置按钮背景_带透明背景的JavaFX按钮
- 在 Flutter 中创建一个动画屏幕
- 转-注册表对应项详解
- 被告知孩子学校偷钱后
- win7计算机本地用户和组,Win7旗舰版找不到本地用户和组如何解决
- 51单片机学习笔记(清翔版)(25)——LCD1602和指针
- JavaScript怎么获取当前时间的年月日?
- 小米、维沃等知名企业启用“.CN”“.中国”域名
- 模型驱动开发的幻象与现实
- 互联网日报 | 双十一购物狂欢火爆开启;小米重返全球智能手机出货量前三;高德地图上线车道级导航...
- linux输出重定向跨服务器,【一看就懂,一听就会】Linux重定向详解——输出重定向...