对python 矩阵转置transpose的实例讲解


Posted in Python onApril 17, 2018

在读图片时,会用到这么的一段代码:

image_vector_len = np.prod(image_size)#总元素大小,3*55*47
img = Image.open(path)
    arr_img = np.asarray(img, dtype='float64')
    arr_img = arr_img.transpose(2,0,1).reshape((image_vector_len, ))# 47行,55列,每个点有3个元素rgb。再把这些元素一字排开

transpose是什么意识呢? 看如下例子:

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

这是原来的矩阵。如果对其进行转置,执行arr2 = arr1.transpose((1,0,2))

得到:

array([[[ 0, 1, 2, 3],
    [ 8, 9, 10, 11]],
    [[ 4, 5, 6, 7],
    [12, 13, 14, 15]]])

过程是怎样的?

arr1.shape 应该是(2, 2, 4) 意为 2维,2*4矩阵

arr1.transpose(*args) 里面的参数,可以这么理解,他是调换arr1.shape的顺序,咱来给arr1.shape标一下角标哈,(2[0], 2[1], 4[2]) [ ] 里是shape的索引,对吧,

transpose((1, 0, 2)) 的意思是 按照这个顺序 重新设置shape 也就是 (2[1], 2[0], 4[2])

虽然看起来 变换前后的shape都是 2,2,4 , 但是问题来了,transpose是转置

shape按照(1,0,2)的顺序重新设置了, array里的所有元素 也要按照这个规则重新组成新矩阵

比如 8 在arr1中的索引是 (1, 0, 0) 那么按照刚才的变换规则,就是 (0, 1, 0) 看看跟你结果arr2的位置一样了吧,依此类推..

另外一个知识点:

对于一维的shape,转置是不起作用的,举例:

x=linspace(0,4,5) 
#array([0.,1.,2.,3.,4.])
y=transpose(x)  # 会转置失败。

如果想正确使用的话:

x.shape=(5,1)
y=transpose(x)  #就可以了

以上这篇对python 矩阵转置transpose的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python里大整数相乘相关技巧指南
Sep 12 Python
Python机器学习之决策树算法
Dec 22 Python
用python 批量更改图像尺寸到统一大小的方法
Mar 31 Python
python获取代理IP的实例分享
May 07 Python
Django 浅谈根据配置生成SQL语句的问题
May 29 Python
python matplotlib 画dataframe的时间序列图实例
Nov 20 Python
python写一个随机点名软件的实例
Nov 28 Python
python 实现多维数组转向量
Nov 30 Python
使用Python打造一款间谍程序的流程分析
Feb 21 Python
python实现logistic分类算法代码
Feb 28 Python
Python实现验证码识别
Jun 15 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
Sep 21 Python
Numpy中转置transpose、T和swapaxes的实例讲解
Apr 17 #Python
解读python logging模块的使用方法
Apr 17 #Python
numpy中的高维数组转置实例
Apr 17 #Python
numpy.transpose对三维数组的转置方法
Apr 17 #Python
python获取酷狗音乐top500的下载地址 MP3格式
Apr 17 #Python
Python中的上下文管理器和with语句的使用
Apr 17 #Python
Python实现读取字符串按列分配后按行输出示例
Apr 17 #Python
You might like
收音机另类DIY - 纸巾盒做外壳
2021/03/02 无线电
phpstorm编辑器乱码问题解决
2014/12/01 PHP
详解PHP神奇又有用的Trait
2019/03/25 PHP
Javascript学习笔记之 函数篇(一) : 函数声明和函数表达式
2014/06/24 Javascript
jQuery表格插件datatables用法总结
2014/09/05 Javascript
jquery实现表单输入时提示文字滑动向上效果
2015/08/10 Javascript
最常见和最有用的字符串相关的方法详解
2017/02/06 Javascript
浅谈Angular文字折叠展开组件的原理分析
2017/11/24 Javascript
JavaScript伪数组用法实例分析
2017/12/22 Javascript
js实现随机数小游戏
2019/06/28 Javascript
使用Vue CLI创建typescript项目的方法
2019/08/09 Javascript
微信小程序tabBar设置实例解析
2019/11/14 Javascript
antd-DatePicker组件获取时间值,及相关设置方式
2020/10/27 Javascript
[06:23]2014DOTA2西雅图国际邀请赛 小组赛7月12日TOPPLAY
2014/07/12 DOTA
[52:39]完美世界DOTA2联赛PWL S3 CPG vs Forest 第一场 12.16
2020/12/17 DOTA
使用Python的判断语句模拟三目运算
2015/04/24 Python
深入浅析python继承问题
2016/05/29 Python
用TensorFlow实现戴明回归算法的示例
2018/05/02 Python
关于python列表增加元素的三种操作方法
2018/08/22 Python
Python XML转Json之XML2Dict的使用方法
2019/01/15 Python
python 整数越界问题详解
2019/06/27 Python
python实现点击按钮修改数据的方法
2019/07/17 Python
python 实现dict转json并保存文件
2019/12/05 Python
Prometheus开发中间件Exporter过程详解
2020/11/30 Python
详解Python模块化编程与装饰器
2021/01/16 Python
HTML5 Canvas 起步(2) - 路径
2009/05/12 HTML / CSS
加拿大最大的相机店:Henry’s
2017/05/17 全球购物
英国文具、办公用品和科技商店:Ryman
2018/09/27 全球购物
KENZO官网:高田贤三在法国创立的品牌
2019/05/16 全球购物
自荐信怎么写好
2013/11/11 职场文书
服装厂厂长职责
2013/12/16 职场文书
毕业生大学生活自我总结
2014/01/31 职场文书
护理专业毕业生自我鉴定总结
2014/03/24 职场文书
歌唱比赛策划方案
2014/06/06 职场文书
2019最新公司租房合同(例文)
2019/07/18 职场文书
教师节作文之小学四年级
2019/09/03 职场文书