对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 相关文章推荐
django自定义Field实现一个字段存储以逗号分隔的字符串
Apr 27 Python
python list排序的两种方法及实例讲解
Mar 20 Python
Python随机函数random()使用方法小结
Apr 29 Python
深入浅析python 协程与go协程的区别
May 09 Python
python基于Selenium的web自动化框架
Jul 14 Python
django获取from表单multiple-select的value和id的方法
Jul 19 Python
Django文件存储 自己定制存储系统解析
Aug 02 Python
Python3.7 pyodbc完美配置访问access数据库
Oct 03 Python
使用Numpy对特征中的异常值进行替换及条件替换方式
Jun 08 Python
如何在scrapy中捕获并处理各种异常
Sep 28 Python
python 实现图片特效处理
Apr 03 Python
python中filter,map,reduce的作用
Jun 10 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 5.0对象模型深度探索之绑定
2006/09/05 PHP
DISCUZ 分页代码
2007/01/02 PHP
关于PHPDocument 代码注释规范的总结
2013/06/25 PHP
推荐一款PHP+jQuery制作的列表分页的功能模块
2014/10/14 PHP
利用php做服务器和web前端的界面进行交互
2016/10/31 PHP
原生js实现查找/添加/删除/指定元素的class
2013/04/12 Javascript
JS注册/移除事件处理程序(ExtJS应用程序设计实战)
2013/05/07 Javascript
js闭包的用途详解
2014/11/09 Javascript
node.js中的fs.openSync方法使用说明
2014/12/17 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
2015/09/12 Javascript
用jquery的attr方法实现图片切换效果
2017/02/05 Javascript
node.js实现微信JS-API封装接口的示例代码
2017/09/06 Javascript
Vue实现一个无限加载列表功能
2018/11/13 Javascript
JavaScript实现的鼠标跟随特效示例【2则实例】
2018/12/22 Javascript
bootstrap table.js动态填充单元格数据的多种方法
2019/07/18 Javascript
layui: layer.open加载窗体时出现遮罩层的解决方法
2019/09/26 Javascript
小程序采集录音并上传到后台
2019/11/22 Javascript
用Angular实现一个扫雷的游戏示例
2020/05/15 Javascript
JavaScript编码小技巧分享
2020/09/17 Javascript
vue组件中传值EventBus的使用及注意事项说明
2020/11/16 Javascript
element-ui 弹窗组件封装的步骤
2021/01/22 Javascript
js简单粗暴的发布订阅示例代码
2021/01/23 Javascript
Eclipse + Python 的安装与配置流程
2013/03/05 Python
python实现简单的计时器功能函数
2015/03/14 Python
Python中绑定与未绑定的类方法用法分析
2016/04/29 Python
Swift 3.0在集合类数据结构上的一些新变化总结
2016/07/11 Python
python中返回矩阵的行列方法
2018/04/04 Python
Python处理菜单消息操作示例【基于win32ui模块】
2018/05/09 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
关于box-sizing的全面理解
2016/07/28 HTML / CSS
详解HTML5中CSS外观属性
2020/09/10 HTML / CSS
碧欧泉美国官网:Biotherm美国
2016/08/31 全球购物
西班牙著名的珠宝首饰品牌:P D PAOLA
2018/09/15 全球购物
为什么使用接口?
2014/08/13 面试题
违章停车检讨书
2014/10/21 职场文书
CSS中妙用 drop-shadow 实现线条光影效果
2021/11/11 HTML / CSS