关于python中的transpose
原文地址:https://www.cnblogs.com/chenyansu/p/6774963.html,
看书中看到一行代码:
mymatrix5 = mat([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])
mymatrix5.transpose()
在Numpy对矩阵的转置中,我们可以用transpose()函数来处理。
这个函数的运行是非常反常理的,可能会令人陷入思维误区。
假设有这样那个一个三维数组(2*4*2):
array ([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7]],
[[ 8, 9, 10, 11],
[12, 13, 14, 15]]])
(1). 错误的观点
我们通常的想法是
从x轴看去,0, 1 ,2 ,3
从y轴看去,0,4
从z轴看去,0, 8
这样表达或许更清晰
y y
x: 0, 1, 2, 3 ----z---- 8, 9, 10, 11
4, 5, 6, 7 ----z----12, 13, 14, 15
下标的排列为[x, y, z]
(2). 正确的观点
事实上,上述庙是是错误的,我们可以通过下标来测试:
arr[0, 0, 0]
0
arr[1, 0, 0]
8
arr[0, 1, 0]
4
arr[0, 0, 1]
1
可以看出,通过改变第一个下标, 我们实际的变动为(1)中表示的z,而不是x,arr[1, 0, 0]所得的数是8而不是1;通过改变第三个下标, 我们实际的变动为(1)中表示的x,而不是z,arr[0, 0, 1]所得的数是1而不是8.
所以,一个数的下标为[z, y, x]
(3)transpose函数的使用
首先,我们利用transpose原样输出
arr.transpose((0, 1, 2))
-----------结果的分割线----------
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7]],
[[ 8, 9, 10, 11],
[12, 13, 14, 15]]])
在这里,transpose()函数的(0, 1, 2)对应着(z, y, x)轴
当我们输入arr.transpose((0, 2, 1))时,产生下列结果
array([[[ 0, 4],
[ 1, 5],
[ 2, 6],
[ 3, 7]],
[[ 8, 12],
[ 9, 13],
[10, 14],
[11, 15]]])
我们可以看到,当我们改变了1和2的位置,x和y转置了。
(4)总结:重点在于理解,三维数组的下标为[z, y, x], transpose()对其的默认编号为0=z, y=1, x=2.
相关文章
- python语法基础_01.Python基础
- 【Python】ValueError: unsupported pickle protocol: 5解决方案/同一个项目 python环境尽量保持一致
- python - 如何使用 Docker 运行多个 Python 脚本和一个可执行文件?
- Python kafka操作实例(kafka-python)
- 【零基础学python】:清华官方出品的《看漫画学Python》全彩PDF,495页资源分享
- 如何快速学习python,学好python?能通过Python赚到的第一笔钱,有哪些经验可以分享吗?
- 超全Python学习路线图+14张思维导图,让python初学者不走弯路
- 请问Python零基础学会可以做哪些?python是不是很难学?
- 零基础自学Python需要多长时间从入门到精通?学python能兼职挣钱吗?怎么挣钱?
- 【python实战】拒绝黄牛!我要用python原价冲周董演唱会~Python自动秒杀抢票脚本
- 测试一些利用PYTHON完成中英文翻译的效果
- 《python 与数据挖掘 》一 第2章 Python基础入门
- gyp ERR! stack Error: Can‘t find Python executable “python“, you can set the PYTHON env variable.
- 《Python游戏编程入门》——1.2 初识Python
- 《Python机器学习——预测分析核心算法》——第1章 关于预测的两类核心算法
- python 随机模块random
- python 编程中的一个关于图片的库 imageio (读取照片RGB内容,转换照片格式)
- Logistic回归模型和Python实现
- 11、代码的鲁棒性——链表中倒数第k个节点(python版)
- python odoo13 在线预览PDF代码分享--曲线救国型
- Python 常见问题 之 python 安装包下载安装速度慢 的 快速解决方法(之一)
- Python 基础 之 python 协程知识点整理,并实现一个简单 gevent 的协程并发图片下载的应用
- Unity 工具 之 报错 Jenkins 执行/调用 Python 脚本,报错提示 ‘python‘ 不是内部或外部命令,也不是可运行的程序或批处理文件
- Python三次样条插值与MATLAB三次样条插值简单案例
- Python用python-docx读写word文档
- 学习笔记(46):Python实战编程-protocol
- Python与Django项目开发,使用inspect、signature、装饰器进行参数检查,QuerySet转List、Dict,以及数据操作方法的二次封装,解决业务和数据存储之间的耦合
- [Python]跟着代码去学习---二维码1:批量生成二维码