对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设置tmpfs来加速项目的教程
Apr 17 Python
Python计算三角函数之asin()方法的使用
May 15 Python
Python分治法定义与应用实例详解
Jul 28 Python
解决pandas 作图无法显示中文的问题
May 24 Python
python游戏开发之视频转彩色字符动画
Apr 26 Python
Python如何使用k-means方法将列表中相似的句子归类
Aug 08 Python
Python实现微信机器人的方法
Sep 06 Python
Python any()函数的使用方法
Oct 28 Python
python Tensor和Array对比分析
Jan 08 Python
python字典和json.dumps()的遇到的坑分析
Mar 11 Python
python3从网络摄像机解析mjpeg http流的示例
Nov 13 Python
通过实例解析python and和or使用方法
Nov 14 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中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
如何使用纯PHP实现定时器任务(Timer)
2015/07/31 PHP
php框架CodeIgniter使用redis的方法分析
2018/04/13 PHP
php array_map()函数实例用法
2021/03/03 PHP
CSS心形加载的动画源码的实现
2021/03/09 HTML / CSS
jQuery中实现动画效果的基本操作介绍
2013/04/16 Javascript
jquery实现文字由下到上循环滚动的实例代码
2013/08/09 Javascript
JS 毫秒转时间示例代码
2013/09/22 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
2014/03/12 Javascript
JS获取随机数函数可自定义最小值最大值
2014/05/08 Javascript
node.js中的fs.read方法使用说明
2014/12/17 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
2015/09/26 Javascript
JavaScript数据类型学习笔记
2016/01/25 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
2016/08/11 Javascript
node+experss实现爬取电影天堂爬虫
2016/11/20 Javascript
JS敏感词过滤代码
2016/12/23 Javascript
webpack入门必知必会
2017/01/16 Javascript
Javascript中for循环语句的几种写法总结对比
2017/01/23 Javascript
页面间固定参数,通过cookie传值的实现方法
2017/05/31 Javascript
JavaScript实现的超简单计算器功能示例
2017/12/23 Javascript
javascript中join方法实例讲解
2019/02/21 Javascript
浅谈js闭包理解
2019/04/01 Javascript
微信小程序 数据缓存实现方法详解
2019/08/26 Javascript
js 递归json树实现根据子id查父id的方法分析
2019/11/08 Javascript
小程序选项卡以及swiper套用(跨页面)
2020/06/19 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
2020/12/10 Javascript
Python开发最牛逼的IDE——pycharm
2018/08/01 Python
Python Tornado核心及相关原理详解
2020/06/24 Python
python 判断一组数据是否符合正态分布
2020/09/23 Python
Anaconda详细安装步骤图文教程
2020/11/12 Python
localStorage 设置过期时间的方法实现
2018/12/21 HTML / CSS
广州品高软件.net笔面试题目
2012/04/18 面试题
商务英语毕业生自荐信范文
2013/11/08 职场文书
初中考试作弊检讨书
2014/02/01 职场文书
企业廉洁教育心得体会
2016/01/20 职场文书