对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中关键字is与==的区别简述
Jul 31 Python
python计算auc指标实例
Jul 13 Python
python实现对excel进行数据剔除操作实例
Dec 07 Python
Python中Threading用法详解
Dec 27 Python
Python和Java进行DES加密和解密的实例
Jan 09 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
May 10 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
Jun 28 Python
用python3 urllib破解有道翻译反爬虫机制详解
Aug 14 Python
python面向对象之类属性和类方法案例分析
Dec 30 Python
Tensorflow实现部分参数梯度更新操作
Jan 23 Python
k-means 聚类算法与Python实现代码
Jun 01 Python
Python实现数字的格式化输出
Aug 01 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
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
php 团购折扣计算公式
2011/11/24 PHP
PHP开启opcache提升代码性能
2015/04/26 PHP
php实现递归的三种基本方式
2020/07/04 PHP
PHP 5.6.11中CURL模块问题的解决方法
2016/08/08 PHP
用Javascript 获取页面元素的位置的代码
2009/09/25 Javascript
JavaScript 面向对象之命名空间
2010/05/04 Javascript
使用jQuery模板来展现json数据的代码
2010/10/22 Javascript
避免回车键导致的页面无意义刷新的解决方法
2011/04/12 Javascript
Javascript绝句欣赏 一些经典的js代码
2012/02/22 Javascript
前端jquery部分很精彩
2016/05/03 Javascript
js编写一个简单的产品放大效果代码
2016/06/27 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
2017/02/27 Javascript
vue 中自定义指令改变data中的值
2017/06/02 Javascript
JavaScript中如何判断一个值的类型
2017/09/15 Javascript
vue.js获得当前元素的文字信息方法
2018/03/09 Javascript
简单明了区分escape、encodeURI和encodeURIComponent
2018/05/26 Javascript
js如何验证密码强度
2020/03/18 Javascript
[00:20]TI9观赛名额抽取Ⅱ
2019/07/24 DOTA
Python Web开发模板引擎优缺点总结
2014/05/06 Python
python计算对角线有理函数插值的方法
2015/05/07 Python
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
2016/09/18 Python
Python 多线程实例详解
2017/03/25 Python
python打包成so文件过程解析
2019/09/28 Python
Python zip函数打包元素实例解析
2019/12/11 Python
python实现将列表中各个值快速赋值给多个变量
2020/04/02 Python
HTML5中的拖放实现详解
2017/08/23 HTML / CSS
澳大利亚在线生活方式商店:Mytopia
2018/07/08 全球购物
娇韵诗俄罗斯官方网站:Clarins俄罗斯
2020/10/03 全球购物
公司委托书格式范文
2014/04/04 职场文书
党章培训心得体会
2014/09/04 职场文书
整改报告怎么写
2014/11/06 职场文书
2014年银行年终工作总结
2014/12/19 职场文书
小学秋季运动会通讯稿
2015/11/25 职场文书
GTX1660显卡搭配显示器推荐
2022/04/19 数码科技