专栏首页决胜机器学习从机器学习学python(四) ——numpy矩阵基础

从机器学习学python(四) ——numpy矩阵基础

从机器学习学python(四)——numpy矩阵基础

(原创内容,转载请注明来源,谢谢)

一、numpy中matrix 和 array的区别

Numpymatrices必须是2维的,但是 numpy arrays (ndarrays) 可以是多维的(1D,2D,3D····ND). Matrix是Array的一个小的分支,包含于Array。所以matrix 拥有array的所有特性。

在numpy中matrix的主要优势是:相对简单的乘法运算符号。例如,a和b是两个matrices,那么a*b,就是矩阵积。

即用matrix计算时,加减乘除都是矩阵运算,而不是简单的运算。

二、矩阵和数组的转换

数组转矩阵:A = mat(s[]) ;矩阵转换数组:s[]= A.getA()

举例:

s=[[4,2],[3,2],[3,1]]
A =mat(s)
A
matrix([[4, 2],
[3, 2],
[3, 1]])
ss = A.getA()
ss
array([[4, 2],
[3, 2],
[3, 1]])

三、转置和轴对换

转置有三种方式,transpose方法、T属性以及swapaxes方法。

1、T属性

主要是针对二维数组,二维数组的T属性即转置。例如b=a.T表示矩阵b是矩阵a的转置。

2、transpose()

对于高维数组,转置需要确定转置方式。首先,矩阵的每个维度有个编号,从0开始编号,例如三维矩阵,则三个维度的编号分别是0、1、2。

a.transpose(0,1,2)即为a,表示a没有转置。a.transpose()则等价于a.transpose(2,1,1),表示完全的转置。而例如a.transpose(0,2,1)表示第三维和第二维进行的转换。

3、swapaxes()

这个方法和transpose方法类似,区别在于这个方法只接收两个参数,表示指定的两个维度的转换。例如a.swapaxes(1,2)等价于a.transpose(0,2,1)。注意到这里维度也是从0开始当作第一维的。

——written by linhxx 2018.01.17

本文分享自微信公众号 - 决胜机器学习(phpthinker),作者:linhxx

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-01-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 从机器学习学python(四) ——numpy矩阵广播及一些技巧

    从机器学习学python(四)——numpy矩阵广播及一些技巧 (原创内容,转载请注明来源,谢谢) 在学ng的深度学习微专业时,其中有几节课讲到numpy的一...

    用户1327360
  • PHP数据结构(八) ——赫夫曼树实现字符串编解码(理论)

    PHP数据结构(八)——赫夫曼树实现字符串编解码(理论) (原创内容,转载请注明来源,谢谢) 一、树和森林 1、树的三种存储结构 1)双亲表示法——数组下标、值...

    用户1327360
  • 设计模式专题(七)——建造者模式

    设计模式专题(七)——建造者模式 (原创内容,转载请注明来源,谢谢) 一、概述 建造者模式(Builder),又称生成器模式,是将一个复杂的对象的构建与它的表...

    用户1327360
  • matlab基础2

    Matlab基本运算 数组: 数组的乘法和除法分别用“.*”和“./”表示。右除和左除的关系为:A./B=B.\A,其中A是被除数,B是除数。 size()和l...

    瓜大三哥
  • OpenGL矩阵变换的数学推导

    说起OpenGL的矩阵变换,我是之前在我们的项目天天P图、布丁相机中开发3D效果时才比较深入地研究了其中的原理,当时一开始时,也只是知道怎么去用这些矩阵,却不知...

    腾讯Bugly
  • 掌握机器学习数学基础之线代(二)

    标量、向量、矩阵和张量 矩阵向量的运算 单位矩阵和逆矩阵 行列式 方差,标准差,协方差矩阵-------(第一部分) 范数 特殊类型的矩阵和向量 特征分解以及其...

    企鹅号小编
  • 图深度学习入门教程(一)——基础类型

    主要是基于图深度学习的入门内容。讲述最基本的基础知识,其中包括深度学习、数学、图神经网络等相关内容。该教程由代码医生工作室出版的全部书籍混编节选而成。偏重完整的...

    代码医生工作室
  • 试试谷歌这个新工具:说不定比TensorFlow还好用!

    它就是JAX,一款由谷歌团队打造(非官方发布),用于从纯Python和Numpy机器学习程序中生成高性能加速器(accelerator)代码,且特定于域的跟踪J...

    新智元
  • C语言的数组为什么要从0开始编号

    在学习数据结构与算法之美中看到一个知识点挺有趣,虽然不是作者压倒性的实验证明,但分析起来也是有道理的,我们来看看是怎么回事:

    morixinguan
  • Android开发:ViewPage最详细教程

    建立ViewPage的步骤: 1. 在XML布局中加入android.support.v4.view.ViewPager:

    Carson.Ho

扫码关注云+社区

领取腾讯云代金券