对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批量提交沙箱问题实例
Oct 08 Python
Python之PyUnit单元测试实例
Oct 11 Python
零基础写python爬虫之爬虫的定义及URL构成
Nov 04 Python
python实现数据导出到excel的示例--普通格式
May 03 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
Sep 17 Python
对Python正则匹配IP、Url、Mail的方法详解
Dec 25 Python
Python 确定多项式拟合/回归的阶数实例
Dec 29 Python
Python3.5 Pandas模块之DataFrame用法实例分析
Apr 23 Python
Pytorch中accuracy和loss的计算知识点总结
Sep 10 Python
python实现飞机大战游戏(pygame版)
Oct 26 Python
Python计算公交发车时间的完整代码
Feb 12 Python
PO模式在selenium自动化测试框架的优势
Mar 20 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中实现图片的锐化
2006/10/09 PHP
php实现cc攻击防御和防止快速刷新页面示例
2014/02/13 PHP
PHP 正则表达式常用函数
2014/08/17 PHP
IE php关于强制下载文件的代码
2008/08/23 Javascript
js调用后台、后台调用前台等方法总结
2014/04/17 Javascript
Javascript冒泡排序算法详解
2014/12/03 Javascript
Jquery 实现grid绑定模板
2015/01/28 Javascript
多种js图片预加载实现方式分享
2016/02/19 Javascript
AngularJS 视图详解及示例代码
2016/08/17 Javascript
总结JavaScript的正则与其他语言的不同之处
2016/08/25 Javascript
Javascript 创建类并动态添加属性及方法的简单实现
2016/10/20 Javascript
Vue中render方法的使用详解
2018/01/26 Javascript
使用angular-cli webpack创建多个包的方法
2018/10/16 Javascript
GOJS+VUE实现流程图效果
2018/12/01 Javascript
Node.js实现用户评论社区功能(体验前后端开发的乐趣)
2019/05/09 Javascript
vue v-for直接循环数字实例
2019/11/07 Javascript
jquery实现拖拽小方块效果
2020/12/10 jQuery
Python通过RabbitMQ服务器实现交换机功能的实例教程
2016/06/29 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
2019/08/20 Python
python语言线程标准库threading.local解读总结
2019/11/10 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
2019/11/11 Python
numpy中三维数组中加入元素后的位置详解
2019/11/28 Python
pytorch标签转onehot形式实例
2020/01/02 Python
美团网旗下网上订餐平台:美团外卖
2020/03/05 全球购物
.TTL是什么?有什么用处,通常那些工具会用到它?(ping? traceroute? ifconfig? netstat?)
2016/05/09 面试题
怎样声明一个匿名的内部类
2016/06/01 面试题
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
超市业务员岗位职责
2013/12/05 职场文书
文明青少年标兵事迹材料
2014/01/28 职场文书
人力资源管理专业自荐信
2014/06/24 职场文书
大一新生军训新闻稿
2015/07/17 职场文书
谢师宴学生致辞
2015/07/27 职场文书
初一军训感言
2015/08/01 职场文书
办公用品管理制度
2015/08/04 职场文书
巾帼建功标兵先进事迹材料
2016/02/29 职场文书
Python中itertools库的四个函数介绍
2022/04/06 Python