python 矩阵转置transpose
来源:互联网 发布:健康风险评估软件 编辑:程序博客网 时间:2024/05/01 18:53
在读图片时,会用到这么的一段代码:
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的位置一样了吧,依此类推..
- python 矩阵转置transpose
- python 矩阵转置transpose--实战应用详解
- 谈一点numpy.transpose()矩阵转置操作
- python 中的数组转置和轴对称,T/transpose/swapaxes
- python transpose
- Python——有关transpose的多维转置的难点
- python transpose的理解
- Python的transpose()函数
- Tensorflow:转置函数 transpose解析
- python 矩阵转置
- Python--矩阵转置
- python 矩阵转置
- numpy.transpose对三维数组的转置
- numpy之转置(transpose)和轴对换
- Android Jni 利用OpenCV transpose()函数实现图像转置
- Python 线性代数 矩阵转置
- python numpy 矩阵转置
- python 中numpy.transpose()的用法
- cocos2d-x-3.0学习笔记之如何创建开关菜单
- 深入理解session
- Android studio NDK-JNI 编译so文件
- java多种保存2位小数的对比
- Android item上的button,在activity中点击。
- python 矩阵转置transpose
- 设计模式学习笔记-状态模式
- #112 Remove Duplicates from Sorted List
- Android适配——drawable和values的加载规则
- 把Java数组转换为List时的注意事项
- android radioButton 选中后改变字体颜色样式
- 移动端开发者眼中的前端开发流程变迁与前后端分离
- Android之Adapter的封装与抽象(三)
- JavaWeb:报错信息The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path