python转置矩阵函数_对python 矩阵转置transpose的实例讲解
大家好,又见面了,我是你们的朋友全栈君。
在读图片时,会用到这么的一段代码:
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
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/136958.html原文链接:https://javaforall.cn
相关文章
- Python 命令行参数的3种传入方式
- Python基础19-面向对象(高级)
- 快速了解 OJ 判题系统如何在python中使用?
- Python项目50-Celery框架
- Python 上下文管理及 with 语句的实用技巧
- Easy Games With Python and Pygame(二)- Pygame 绘制图形
- 2022年最新Python大数据之Python基础【七】参数与管理系统
- python执行cmd命令并解析结果_python如何打包成可执行程序
- Python 模板渲染库 yaml 和 jinja2 的实战经验分享
- python的内置函数(五)、endswith()
- Python-drf前戏38.4-前端Vue04
- jupyter和python的关系_jupyter notebook和python
- Win10配置Airsim环境并设置Python通信
- python求逆矩阵的方法,Python 如何求矩阵的逆「建议收藏」
- .app 域名发布了,我们可以使用 Python 做点什么?
- Python求逆矩阵_3x3下三角矩阵求逆矩阵
- Python-基础04-数据类型
- Python基础14-内置模块
- 羊了个羊,但是Python简(li)单(pu)版
- python解释器找不到_python解释器路径