对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实现socket客户端和服务端简单示例
Feb 24 Python
详解Python编程中time模块的使用
Nov 20 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
Dec 12 Python
Python实现学校管理系统
Jan 11 Python
Python操作MySQL数据库的方法
Jun 20 Python
Python将文本去空格并保存到txt文件中的实例
Jul 24 Python
Centos部署django服务nginx+uwsgi的方法
Jan 02 Python
python实现横向拼接图片
Mar 23 Python
django自带的权限管理Permission用法说明
May 13 Python
python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案
Aug 11 Python
pyqt5实现井字棋的示例代码
Dec 07 Python
python中HTMLParser模块知识点总结
Jan 25 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
与数据库连接
2006/10/09 PHP
生成php程序的php代码
2008/04/07 PHP
php中存储用户ID和密码到mysql数据库的方法
2013/02/06 PHP
php实现用手机关闭计算机(电脑)的方法
2015/04/22 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
asp函数split()对应php函数explode()
2019/02/27 PHP
浅谈PHP array_search 和 in_array 函数效率问题
2019/10/15 PHP
JQuery自定义事件的应用 JQuery最佳实践
2010/08/01 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
2011/04/07 Javascript
js验证模型自我实现的具体方法
2013/06/21 Javascript
JS加jquery简单实现标签元素的显示或隐藏
2013/09/23 Javascript
jQuery中Form相关知识汇总
2015/01/06 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
在JavaScript中处理时间之getHours()方法的使用
2015/06/10 Javascript
jQuery Ajax 实例代码 ($.ajax、$.post、$.get)
2016/04/29 Javascript
深入理解jQuery.data() 的实现方式
2016/11/30 Javascript
JavaScript 完成注册页面表单校验的实例
2017/08/19 Javascript
JQuery 获取多个select标签option的text内容(实例)
2017/09/07 jQuery
Python中几种导入模块的方式总结
2017/04/27 Python
Python 比较两个数组的元素的异同方法
2017/08/17 Python
Python 列表理解及使用方法
2017/10/27 Python
PyQt5每天必学之切换按钮
2020/08/20 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
CSS Houdini实现动态波浪纹效果
2019/07/30 HTML / CSS
使用HTML5和CSS3制作一个模态框的示例
2018/03/07 HTML / CSS
印度购买眼镜和太阳镜网站:Coolwinks
2018/09/26 全球购物
满月酒答谢词
2014/01/14 职场文书
高中物理教学反思
2014/02/08 职场文书
数学教学随笔感言
2014/02/17 职场文书
企业宣传口号
2014/06/12 职场文书
辩论赛主持人开场白
2015/05/29 职场文书
2019财务转正述职报告
2019/06/27 职场文书
SQLServer 日期函数大全(小结)
2021/04/08 SQL Server
详解python的内存分配机制
2021/05/10 Python
Python matplotlib可视化之绘制韦恩图
2022/02/24 Python
netty 实现tomcat的示例代码
2022/06/05 Servers