numpy矩阵简介

NumPy函数库中存在两种不同的数据类型(矩阵matrix和数组array),都可以用于处理行列表示的数字元素。虽然它们看起来很相似,但是在这两个数据类型上执行相同的数学运算可能得到不同的结果,其中NumPy函数库中的matrix与MATLAB中matrices等价。

numpy模块中的矩阵对象为numpy.matrix,包括矩阵数据的处理,矩阵的计算,以及基本的统计功能,转置,可逆性等等,包括对复数的处理,均在matrix对象中。

关于numpy中矩阵和二维数组的取舍

matrix是array的分支,matrix和array在很多时候都是通用的,但官方建议如果两个可以通用,那就选择array,因为array更灵活,速度更快,很多人把二维的array也翻译成矩阵。

matrix的优势就是相对简单的运算符号,如矩阵相乘用符号*,但是array相乘得用方法.dot()。

Note: array * mat也是矩阵相乘,而不是点乘。

array的优势就是不仅仅表示二维,还能表示3、4、5...维,而且在大部分Python程序里,array也是更常用的。

Note:

1. numpy中二维数组不支持求逆运算(给gui),但可以使用scripy中的linalg.inv()函数求逆。

2. lz建议使用二维ndarray代替matrix,结合使用scripy.linalg库可以实现全部矩阵运算。[Scipy教程 - 线性代数库linalg]

Matrix objects矩阵对象

创建示例

np.matrix

>>> a = np.matrix(’1 2; 3 4’)

>>> print a

[[1 2]

[3 4]]

>>> np.matrix([[1, 2], [3, 4]])

matrix([[1, 2],

[3, 4]])

Note:

1. class numpy.matrix(data,dtype,copy):返回一个矩阵,其中data为ndarray对象或者字符形式;dtype:为data的type;copy:为bool类型。

2. 矩阵的换行必须是用分号(;)隔开,内部数据必须为字符串形式(‘ ’),矩阵的元素之间必须以空格隔开。

3. 矩阵中的data可以为数组对象。

np.asmatrix

>>> x = np.array([[1, 2], [3, 4]])

>>> m = np.asmatrix(x)

>>> x[0,0] = 5

>>> m

matrix([[5, 2],

[3, 4]])

矩阵对象属性Attribute

矩阵对象方法Methods

[numpy-ref-1.8.1 - 1.6.2 Matrix objects p120]

Matrix矩阵对象方法使用示例

>>> a = np.asmatrix('0 2 7; 3 4 8; 5 0 9')

>>> a.all()

False

>>> a.all(axis=0)

matrix([[False, False,  True]], dtype=bool)

>>> a.all(axis=1)

matrix([[False],

[ True],

[False]], dtype=bool)

ü  Astype方法

>>> a.astype(float)

matrix([[ 12.,   3.,   5.],

[ 32.,  23.,   9.],

[ 10., -14.,  78.]])

ü  Argsort方法

>>> a=np.matrix('12 3 5; 32 23 9; 10 -14 78')

>>> a.argsort()

matrix([[1, 2, 0],

[2, 1, 0],

[1, 0, 2]])

ü  Clip方法

>>> a

matrix([[ 12,   3,   5],

[ 32,  23,   9],

[ 10, -14,  78]])

>>> a.clip(12,32)

matrix([[12, 12, 12],

[32, 23, 12],

[12, 12, 32]])

ü  Cumprod方法

>>> a.cumprod(axis=1)

matrix([[    12,     36,    180],

[    32,    736,   6624],

[    10,   -140, -10920]])

ü  Cumsum方法

>>> a.cumsum(axis=1)

matrix([[12, 15, 20],

[32, 55, 64],

[10, -4, 74]])

ü  Tolist方法

>>> b.tolist()

[[12, 3, 5], [32, 23, 9], [10, -14, 78]]

ü  Tofile方法

>>> b.tofile('d:\\b.txt')

ü  compress()方法

>>> from numpy import *

>>> a = array([10, 20, 30, 40])

>>> condition = (a > 15) & (a < 35)

>>> condition

array([False, True, True, False], dtype=bool)

>>> a.compress(condition)

array([20, 30])

>>> a[condition]                                      # same effect

array([20, 30])

>>> compress(a >= 30, a)                              # this form a

so exists

array([30, 40])

>>> b = array([[10,20,30],[40,50,60]])

>>> b.compress(b.ravel() >= 22)

array([30, 40, 50, 60])

>>> x = array([3,1,2])

>>> y = array([50, 101])

>>> b.compress(x >= 2, axis=1)                       # illustrates

the use of the axis keyword

array([[10, 30],

[40, 60]])

>>> b.compress(y >= 100, axis=0)

array([[40, 50, 60]])

The Matrix class numpy矩阵类

建立矩阵

Note: numpy.mat(data, dtype=None)   Interpret the input as a matrix.

Unlike matrix, asmatrix does not make a copy if the input is already a matrix or an ndarray. Equivalent to matrix(data, copy=False).

[numpy-ref-1.8.1 - 3.1.7 The Matrix class p484]

Matrix library矩阵库(numpy.matlib)

This module contains all functions in the numpy namespace, with the following replacement functions that return matrices instead of ndarrays.

Functions that are also in the numpy namespace and return matrices

Replacement functions in matlib

[numpy-ref-1.8.1 - 3.21 Matrix library p940]

python矩阵教程_numpy教程:矩阵matrix及其运算相关推荐

  1. python 矩阵合并_numpy 的矩阵合并与分割

    aiblog4.jpg 这次分享下numpy中矩阵的合并与分割,希望能帮助到大家. 在此附上视频链接 一.引入numpy第三方库 首先我们引入numpy这个第三方库,如果有同学没安装numpy可在命令 ...

  2. [转载] numpy教程:矩阵matrix及其运算

    参考链接: Python中的numpy.asmatrix http://blog.csdn.net/pipisorry/article/details/48791403 numpy矩阵简介 NumPy ...

  3. 性能比拼!超详细的Tengine GEMM矩阵乘法汇编教程

    点击我爱计算机视觉标星,更快获取CVML新技术 Tengine 是OPEN AI LAB 针对前端智能设备开发的软件开发包,核心部分是一个轻量级,模块化,高性能的AI 推断引擎,并支持用DLA.GPU ...

  4. Python - pyradiomics - 邻域灰阶依赖性矩阵特征(Neighboring Gray Level Dependence Matrix Features)

    文章目录 1. X Dependence Emphasis (1) Small Dependence Emphasis (SDE) (2) Large Dependence Emphasis (LDE ...

  5. Python - pyradiomics - 邻域灰阶依赖性矩阵(Neighboring Gray Level Dependence Matrix)

    文章目录 理论 Python实操 有关邻域灰阶依赖性矩阵(Neighboring Gray Level Dependence Matrix, NGLDM)的一切的起源: Sun C, Wee WG. ...

  6. matlab视频教程矩阵,Matlab-初级教程-系列1:matlab之入门教学视频-3 数组和矩阵分析2...

    Matlab-初级教程-系列1:matlab之入门教学视频-3 数组和矩阵分析2 一.矩阵的基本数值运算 矩阵的加减运算 a+b,a-b: a,b 的维数必须相同,对应的元素相加减, 2.矩阵的乘法 ...

  7. Eigen教程(3)之矩阵和向量的运算

    转载于:https://www.cnblogs.com/houkai/p/6348044.html 矩阵和向量的运算 提供一些概述和细节:关于矩阵.向量以及标量的运算. 介绍 Eigen提供了matr ...

  8. python的常见矩阵除法_numpy常用矩阵运算方法【转】

    目录: 对于python中的numpy模块,一般用其提供的ndarray对象. 创建一个ndarray对象很简单,只要将一个list作为参数即可. 例如 import numpy as np #引入n ...

  9. python 矩阵拼接_Numpy基础4 矩阵取整 拉平 拼接 切分 复制等函数操作

    Github源码In [1]: import numpy as np B = np.arange(3) print(B) print(np.exp(B)) #返回e的幂次方,e是一个常数为2.7182 ...

最新文章

  1. 北大教授杨超、清华教授唐杰获首届“王选杰出青年学者奖”
  2. 最小乘积生成树和最小乘积最大匹配
  3. virilog 模块之间的层次关系_软件工程导论 期末复习题
  4. 共阳极数码时钟c语言程序,基于51单片机C语言数字钟程序.doc
  5. 基于abp vnext制作项目脚手架
  6. 测试python第二周_python第二周作业
  7. Python打印五子棋棋盘
  8. C++ OpenCV制作九宫格拼图游戏
  9. 关于微信卡券网页跳转链接能力的下线
  10. 概率神经网络的主要思想,神经网络随机数预测
  11. 招聘渠道超全汇总,最适合你的是哪一类?
  12. 做自媒体如何获得更多的流量?
  13. ESP8266-01S使用教程
  14. 李开复给大学生的第3封信:成功、自信、快乐
  15. 计算机微机组装与维护形考1,最新国开电大《ERP原理与应用》形考任务实验1至5作业及答案...
  16. java当数值超过byte时_【Java学习重难点记录】byte数据类型在显式类型转换时超出其取值范围的转换过程...
  17. caxa发生文件读写异常_为什么提示caxa读取文件错误
  18. crontab Do you want to retry the same edit? (y/n)
  19. 串口RS232 RS485最本质的区别!-!I2C通讯协议 最简单的总线通讯!-深入理解SPi通讯协议!
  20. ES-查询相关和IK分词器

热门文章

  1. Android之解决打补丁包后移动端为什么不升级,升级之后出现“应用未安装“,以及更新成功之后反复更新问题
  2. 用C语言实现数组反序
  3. Android之水平ProgressBar多彩背景颜色
  4. 《iVX 高仿美团APP制作移动端完整项目》03 推介信息及推荐商家分析及制作
  5. python123输出hello world_Python基础:输入与输出
  6. c语言程序设计的顺序结构的常用控制语句,C语言程序设计教程-第03课-顺序结构的程序设计.ppt...
  7. java简易日历程序报告_简单的日历小程序(java编写)
  8. 放寒假的硕博研究生将经历什么?
  9. 这个女生躲在衣柜等男友回家,结果竟是......
  10. 看OpenCV如何在python中实现图像检测!