对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 list中append()与extend()用法分享
Mar 24 Python
python网络编程学习笔记(六):Web客户端访问
Jun 09 Python
由Python运算π的值深入Python中科学计算的实现
Apr 17 Python
python实现下载文件的三种方法
Feb 09 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
Jun 13 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
Jan 05 Python
查看Python依赖包及其版本号信息的方法
Aug 13 Python
解决Python3下map函数的显示问题
Dec 04 Python
python 字典套字典或列表的示例
Dec 16 Python
用python爬取历史天气数据的方法示例
Dec 30 Python
Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法
Feb 27 Python
Python如何把不同类型数据的json序列化
Apr 30 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
全国FM电台频率大全 - 10 江苏省
2020/03/11 无线电
PHP编码规范之注释和文件结构说明
2010/07/09 PHP
PHP实现冒泡排序的简单实例
2016/05/26 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
JS删除数组元素的函数介绍
2013/03/27 Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
2014/08/16 Javascript
jquery常用方法及使用示例汇总
2014/11/08 Javascript
百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
2016/02/19 Javascript
Move.js入门
2017/02/08 Javascript
判断颜色是否合法的正则表达式(详解)
2017/05/03 Javascript
响应式框架Bootstrap栅格系统的实例
2017/12/19 Javascript
jQuery实现监听下拉框选中内容发生改变操作示例
2018/07/13 jQuery
JS使用canvas中的measureText方法测量字体宽度示例
2019/02/02 Javascript
viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)
2020/04/01 jQuery
JS实现手风琴特效
2020/11/08 Javascript
python @property的用法及含义全面解析
2018/02/01 Python
Python socket实现简单聊天室
2018/04/01 Python
python3基于OpenCV实现证件照背景替换
2018/07/18 Python
Python去除字符串前后空格的几种方法
2019/03/04 Python
Python使用mongodb保存爬取豆瓣电影的数据过程解析
2019/08/14 Python
深入浅析python的第三方库pandas
2020/02/13 Python
Python request使用方法及问题总结
2020/04/26 Python
Python如何执行精确的浮点数运算
2020/07/31 Python
Selenium Webdriver元素定位的八种常用方式(小结)
2021/01/13 Python
Python3+Appium安装及Appium模拟微信登录方法详解
2021/02/16 Python
AmazeUI 列表的实现示例
2020/08/17 HTML / CSS
英国网上花店:Bunches
2016/11/29 全球购物
诗狄娜化妆品官方网站:Stila Cosmetics
2016/12/21 全球购物
Nike台湾官方商店:Nike.com (TW)
2017/08/16 全球购物
英国领先的餐饮折扣俱乐部:Gourmet Society
2020/07/26 全球购物
在校硕士自我鉴定
2014/01/23 职场文书
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
答谢词范文
2015/01/05 职场文书
离职信范本
2015/06/23 职场文书
JavaScript如何利用Promise控制并发请求个数
2021/05/14 Javascript
java实现自定义时钟并实现走时功能
2022/06/21 Java/Android