对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中的高维数组转置实例
相关推荐
-
numpy中的高维数组转置实例
numpy中的ndarray很适合数组运算 transpose是用来转置的一个函数,很容易让人困惑,其实它是对矩阵索引顺序的一次调整.原先矩阵是一个三维矩阵,索引顺序是x,y,z,角标分别是0.1.2,经过上图(1,0,2)调整后就成了y,x,z. 理解了这些,那么swapaxes方法也就不难理解了 以上这篇numpy中的高维数组转置实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: Numpy中转置transpose.T和swapaxes的
-
Python实现矩阵转置的方法分析
本文实例讲述了Python实现矩阵转置的方法.分享给大家供大家参考,具体如下: 前几天群里有同学提出了一个问题:手头现在有个列表,列表里面两个元素,比如[1, 2],之后不断的添加新的列表,往原来相应位置添加.例如添加[3, 4]使原列表扩充为[[1, 3], [2, 4]],再添加[5, 6]扩充为[[1, 3, 5], [2, 4, 6]]等等. 其实不动脑筋的话,用个二重循环很容易写出来: def trans(m): a = [[] for i in m[0]] for i in m: f
-
numpy.transpose对三维数组的转置方法
如下所示: import numpy as np 三维数组 arr1 = np.arange(16).reshape((2, 2, 4)) #[[[ 0 1 2 3] # [ 4 5 6 7]] # [[ 8 9 10 11] # [12 13 14 15]]] arr2=arr1.transpose((1,0,2)) #[[[ 0 1 2 3] # [ 8 9 10 11]] # # [[ 4 5 6 7] # [12 13 14 15]]] 正序为(0,1,2),数组为 #[[[ 0 1 2
-
Numpy中转置transpose、T和swapaxes的实例讲解
利用Python进行数据分析时,Numpy是最常用的库,经常用来对数组.矩阵等进行转置等,有时候用来做数据的存储. 在numpy中,转置transpose和轴对换是很基本的操作,下面分别详细讲述一下,以免自己忘记. In [1]: import numpy as np In [2]: arr=np.arange(16).reshape(2,2,4) In [3]: arr Out[3]: array([[[ 0, 1, 2, 3], [ 4, 5, 6, 7]], [[ 8, 9, 10, 11
-
对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是什么意识呢?
-
Python创建简单的神经网络实例讲解
在过去的几十年里,机器学习对世界产生了巨大的影响,而且它的普及程度似乎在不断增长.最近,越来越多的人已经熟悉了机器学习的子领域,如神经网络,这是由人类大脑启发的网络.在本文中,将介绍用于一个简单神经网络的 Python 代码,该神经网络对于一个 1x3 向量,分类第一个元素是否为 10. 步骤1: 导入 NumPy. Scikit-learn 和 Matplotlib import numpy as np from sklearn.preprocessing import MinMaxScale
-
Python数据处理numpy.median的实例讲解
numpy模块下的median作用为: 计算沿指定轴的中位数 返回数组元素的中位数 其函数接口为: median(a, axis=None, out=None, overwrite_input=False, keepdims=False) 其中各参数为: a:输入的数组: axis:计算哪个轴上的中位数,比如输入是二维数组,那么axis=0对应行,axis=1对应列: out:用于放置求取中位数后的数组. 它必须具有与预期输出相同的形状和缓冲区长度: overwrite_input:一个bool
-
Python 矩阵转置的几种方法小结
我就废话不多说了,直接上代码吧! #Python的matrix转置 matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] def printmatrix(m): for ele in m: for i in ele: print("%2d" %i,end = " ") print() #1.利用元祖的特性进行转置 def transformMatrix(m): #此处巧妙的先按照传递的元祖m的列数,生成了r的行数 r = [[] f
-
python矩阵运算,转置,逆运算,共轭矩阵实例
我就废话不多说了,大家还是直接看代码吧! #先定义两个矩阵 X=np.array([[1,2104,5,1,45],[1,1416,3,2,40],[1,1534,3,2,30],[1,852,2,1,36]]) y=np.array([45,40,30,36]) #内积以后发现 c=np.dot(X.T,X) c array([[ 4, 5906, 13, 6, 151], [ 5906, 9510932, 21074, 8856, 228012], [ 13, 21074, 47, 19,
-
python模块之time模块(实例讲解)
time 表示时间的三种形式 时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行"type(time.time())",返回的是float类型. 格式化的时间字符串(Format String): '1999-12-06' 时间格式化符号 ''' %y 两位数的年份表示(00-99) %Y 四位数的年份表示(000-9999) %m 月份(01-12) %d 月内中的一天(0-31) %H 24小时制小时数(0-2
-
python数据结构之链表的实例讲解
在程序中,经常需要将⼀组(通常是同为某个类型的)数据元素作为整体 管理和使⽤,需要创建这种元素组,⽤变量记录它们,传进传出函数等. ⼀组数据中包含的元素个数可能发⽣变化(可以增加或删除元素). 对于这种需求,最简单的解决⽅案便是将这样⼀组元素看成⼀个序列,⽤ 元素在序列⾥的位置和顺序,表示实际应⽤中的某种有意义的信息,或者 表示数据之间的某种关系. 这样的⼀组序列元素的组织形式,我们可以将其抽象为线性表.⼀个线性 表是某类元素的⼀个集合,还记录着元素之间的⼀种顺序关系.线性表是 最基本的数据结构
-
Python网络爬虫与信息提取(实例讲解)
课程体系结构: 1.Requests框架:自动爬取HTML页面与自动网络请求提交 2.robots.txt:网络爬虫排除标准 3.BeautifulSoup框架:解析HTML页面 4.Re框架:正则框架,提取页面关键信息 5.Scrapy框架:网络爬虫原理介绍,专业爬虫框架介绍 理念:The Website is the API ... Python语言常用的IDE工具 文本工具类IDE: IDLE.Notepad++.Sublime Text.Vim & Emacs.Atom.Komodo E
-
对Python 网络设备巡检脚本的实例讲解
1.基本信息 我公司之前采用的是人工巡检,但奈何有大量网络设备,往往巡检需要花掉一上午(还是手速快的话),浪费时间浪费生命. 这段时间正好在学 Python ,于是乎想(其)要(实)解(就)放(是)双(懒)手. 好了,脚本很长又比较挫,有耐心就看看吧. 需要巡检的设备如下: 设备清单 设备型号 防火墙 华为 E8000E H3C M9006 飞塔 FG3950B 交换机 华为 S9306 H3C S12508 Cisco N7K 路由器 华为 NE40E 负载 Radware RD5412 Ra
-
python去除扩展名的实例讲解
获取不带扩展名的文件的名称: import os printos.path.splitext("path_to_file")[0] from os.path import basename # now you can call it directly with basename print basename("/a/b/c.txt") >>>base=os.path.basename('/root/dir/sub/file.ext') >&g
随机推荐
- CS1.5,cs1.6中使用包含文件夹的脚本的图文教程
- 网页前端登录js按Enter回车键实现登陆的两种方法
- 一步一步教你写一个jQuery的插件教程(Plugin)
- 微信小程序 参数传递详解
- iOS10 适配-Xcode8问题总结及解决方案
- 浅谈插入排序算法在Python程序中的实现及简单改进
- 根据控件Id得到控件并对该控件进行操作
- 写一个含数字,拼音,汉字的验证码生成类
- Mysql 原生语句中save or update 的写法汇总
- Mac下忘记Mysql的root用户密码的解决方法
- C#生成MD5的函数代码
- 2014马年祝福语大全
- jQuery中的deferred使用方法
- PowerShell中正则表达式使用例子
- js 图片缩放(按比例)控制代码
- PHP生成RSS文件类实例
- AJAX JavaScript反射机制的介绍
- JS实现超精简响应鼠标显示二级菜单代码
- jquery根据name取得select选中的值实例(超简单)
- 4个顶级开源JavaScript图表库