python转置矩阵函数_对python 矩阵转置transpose的实例讲解

python转置矩阵函数_对python 矩阵转置transpose的实例讲解在读图片时,会用到这么的一段代码:image_vector_len=np.prod(image_size)#总元素大小,3*55*47img=Image.open(path)arr_img=np.asarray(img,dtype=’float64′)arr_img=arr_img.transpose(2,0,1).reshape((image_vector_len,))#4…

大家好,又见面了,我是你们的朋友全栈君。

在读图片时,会用到这么的一段代码:

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的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

您可能感兴趣的文章:

Numpy中转置transpose、T和swapaxes的实例讲解

Python实现矩阵转置的方法分析

numpy.transpose对三维数组的转置方法

numpy中的高维数组转置实例

时间: 2018-04-14

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/136958.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Springboot之poi导出

    Springboot之poi导出Springboot之poi导出

  • modelsim se 10.5安装教程

    modelsim se 10.5安装教程modelsimse10.5安装教程简介modelsim10.5是由mentorgraphics公司推出的一款具备强大的仿真性能与调试能力的HDL设计验证环境,也是唯一的单内核支持VHDL和Verilog混合仿真的仿真器,提供最友好的调试环境,采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真,并且具有个性化的图形界面和用户接口,能够为用户加快调试提供强有力的手段。而且软件全面支持VHDL和Verilog语言的IEEE标准,以及IEEEVITAL1076.4-95标准,与C语言功能调

  • 【Spark亚太研究院系列】Spark道路的真正的主人-第一章 构建Spark星团(第五步)(6)

    【Spark亚太研究院系列】Spark道路的真正的主人-第一章 构建Spark星团(第五步)(6)

  • 画二元函数即三维图像的函数及matlab代码

    画二元函数即三维图像的函数及matlab代码画二元函数,即两个变量可以得到三维图像,下面通过一个例子进行讲解。首先利用meshgrid函数产生平面区域内的网格坐标矩阵。x=[1,2,3,4,5]y=[2,4,6];[X,Y]=meshgrid(x,y);执行完以后X、Y均为矩阵,其中矩阵X的每一行都是向量x,行数等于向量y的元素的个数,矩阵Y的每一列都是向量y,列数等于向量x的元素的个数,具体则为:接…

  • Taiko taiko

    Taiko taikoTaikotaikoDescription拆拆超级喜欢太鼓达人(赛后大家可自行百度规则),玩久了也对积分规则产生了兴趣,理论上连击数越多,分数增加的越快,而且还配合着击打准确度有相应的计算规则,拆拆觉得这些规则太复杂了,于是把规则自行简化了下:对于一段击打序列,我们假设Y为打中,N为未打中(没有良可之分了)我们视连续的n次击中为n连击 相应的分数为1+2+3

    2022年10月22日
  • druid监控配置

    druid监控配置maven依赖:<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.10</version>…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号