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

完 谢谢观看

python矩阵转置_对python矩阵转置transpose的实例讲解相关推荐

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

    在读图片时,会用到这么的一段代码: image_vector_len = np.prod(image_size)#总元素大小,3*55*47 img = Image.open(path) arr_im ...

  2. python transpose_对python 矩阵转置transpose的实例讲解

    在读图片时,会用到这么的一段代码: image_vector_len = np.prod(image_size)#总元素大小,3*55*47 img = Image.open(path) arr_im ...

  3. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  4. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  5. python中矩阵的转置_[转]Python中的矩阵转置

    Python中的矩阵转置 via 需求: 你需要转置一个二维数组,将行列互换. 讨论: 你需要确保该数组的行列数都是相同的.比如: arr = [[1, 2, 3], [4, 5, 6], [7, 8 ...

  6. python给矩阵赋值_解决Python二维数组赋值问题

    解决Python二维数组赋值问题 当我们采用s=[[0]*3]*2初始化一个数组,然后对s[0][0]进行赋值,改变的是第一列所有的值.因为用s = [[0]*3]*2 初始化数组,他表示的是指向这个 ...

  7. python numpy逆_关于python:为什么numpy和scipy中的矩阵求逆函数对于大的二次矩阵返回不同的结果?...

    可以说我定义了一个大的二次矩阵(例如150x150). 一次它是一个numpy数组(矩阵A),一次是scipy稀疏数组(矩阵B). 1 2 3 4 5 6 7 8 9 10 11 12import n ...

  8. 线性代数矩阵行列式_非平方矩阵的行列式| 使用Python的线性代数

    线性代数矩阵行列式 Prerequisites: 先决条件: Defining a Matrix 定义矩阵 Determinant of a Matrix 矩阵的行列式 Note: Determina ...

  9. python矩阵计算器_【python实用编程之简单矩阵计算器实现】GUI编程

    #coding=gbk from tkinter import Tk,Menu,messagebox,Text,END from re import match,findall from numpy. ...

最新文章

  1. LeetCode简单题之三角形的最大周长
  2. python @ 符号 表示矩阵乘法时的用法
  3. AIX 文件操作和AIX 目录操作
  4. 数列求和 java_[代码展示]数列求和
  5. 天梯— A-B(C语言)
  6. Linux安装nextcloud教程,WSL下安装nextcloud
  7. debounce函数的实现
  8. 题解【[BJOI2012]算不出的等式】
  9. 控制系统状态空间表达式的解(3)——求解线性定常系统零状态响应
  10. 图像坐标系、相机坐标系和世界坐标系 相机的内、外参数矩阵
  11. 基于3D Vision眼镜的OSG立体显示
  12. python中国大学慕课网_高级语言程序设计(Python)中国大学慕课搜题网站
  13. 使用vscode开发,使用插件记录
  14. 《缠中说禅108课》41:没有节奏,只有死
  15. WIN7 64位操作系统下成功安装Oracle10g(32位)
  16. sharePoint 发生意外错误.显示错误详细信息
  17. 【C语言】字符数组的定义及使用
  18. 个人创业如何赚钱?现在做什么生意赚钱?
  19. ALSA声卡笔记2---ASoC驱动框架
  20. 破解企业服务支付难题,SaaS与支付如何深度融合?

热门文章

  1. 人工神经网络基础——前馈神经网络
  2. 重庆大学计算机通讯与网络试卷,重庆大学201803批次网上计算机基础B卷
  3. C - The Domino Effect(dfs+回溯)
  4. 「算法时空」星球视频目录
  5. 用c语言实现银行存款程序
  6. 3.JS排序算法之选择排序
  7. vue项目nginx服务器部署详细流程....
  8. 【学习笔记】《网络安全态势感知》第二章:网络安全态势感知系统及案例
  9. Joinpoint与Proceedingjoinpoint
  10. python类中私有成员和方法的访问