numpy中matrix 和 array的区别

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

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

>>> import numpy as np
>>> a=np.mat('4 3; 2 1')
>>> b=np.mat('1 2; 3 4')
>>> a
matrix([[4, 3],[2, 1]])
>>> b
matrix([[1, 2],[3, 4]])
>>> a*b
matrix([[13, 20],[ 5,  8]])

(2)matrix 和 array 都可以通过objects后面加.T.T 得到其转置。但是 matrix objects 还可以在后面加 .H.H 得到共轭矩阵, 加 .I.I 得到逆矩阵。相反的是在numpy里面arrays遵从逐个元素的运算,所以array:c 和d的c∗dc*d运算相当于对应的元素相乘

>>> c=np.array([[4, 3], [2, 1]])
>>> d=np.array([[1, 2], [3, 4]])
>>> c*d
array([[4, 6],[6, 4]])

(3) ∗∗** 运算符的作用也不一样 :

>>> a**2
matrix([[22, 15],[10,  7]])
>>> c**2
array([[16,  9],[ 4,  1]])

因为a是个matrix,所以a∗∗2a**2返回的是a∗aa*a,相当于矩阵相乘。而c是array,c∗∗2c**2相当于,c中的元素逐个求平方。

(3)numpy中矩阵间的除法运算

>>> a/2
matrix([[2, 1],[1, 0]])
>>> a/b
matrix([[4, 1],[0, 0]])

取得是整数

基本运算

import numpy as np
a = np.mat([[-1,2],[2,3]])
b = np.mat([[3,4],[4,5]])
print 'a:\n',a
print 'b:\n',b
print '\n a transpose:\n',a.T #转置
print '\n a inv:\n',np.linalg.inv(a) # 求逆
print "\n a-b: \n",a-b  # a - b,矩阵相减
print "\n a dot b: \n",a*b #2x2矩阵,矩阵相乘
print "\n a/b \n:",b/a  # numpy中的除是对矩阵元素展开计算
print "\n a trace:\n",np.trace(a)  #求迹
eigval,eigvec = np.linalg.eig(a) #特征,特征向量
print "\n a eig value:\n",eigval
print'\n a eig vector:\n',eigveca = np.zeros([4,5])
print  '\n all zero \n',a
a = np.ones([7,6])
print  '\n all one \n',a
a = np.eye(4,7)
print  '\n 4x7 diagonal \n',a
a = np.diag(range(5))
print  '\n 5x5 diagonal \n',a
a = np.empty((2,3))
print '\n empty \n',a

结果:

a:
[[-1  2][ 2  3]]
b:
[[3 4][4 5]]a transpose:
[[-1  2][ 2  3]]a inv:
[[-0.42857143  0.28571429][ 0.28571429  0.14285714]]a-b:
[[-4 -2][-2 -2]]a dot b:
[[ 5  6][18 23]]a/b
: [[-3  2][ 2  1]]a trace:
2a eig value:
[-1.82842712  3.82842712]a eig vector:
[[-0.92387953 -0.38268343][ 0.38268343 -0.92387953]]all zero
[[ 0.  0.  0.  0.  0.][ 0.  0.  0.  0.  0.][ 0.  0.  0.  0.  0.][ 0.  0.  0.  0.  0.]]all one
[[ 1.  1.  1.  1.  1.  1.][ 1.  1.  1.  1.  1.  1.][ 1.  1.  1.  1.  1.  1.]..., [ 1.  1.  1.  1.  1.  1.][ 1.  1.  1.  1.  1.  1.][ 1.  1.  1.  1.  1.  1.]]4x7 diagonal
[[ 1.  0.  0. ...,  0.  0.  0.][ 0.  1.  0. ...,  0.  0.  0.][ 0.  0.  1. ...,  0.  0.  0.][ 0.  0.  0. ...,  0.  0.  0.]]5x5 diagonal
[[0 0 0 0 0][0 1 0 0 0][0 0 2 0 0][0 0 0 3 0][0 0 0 0 4]]empty
[[ 1.  0.  0.][ 0.  0.  0.]]

注意矩阵除法运算的结果
print "\n a/b \n:",b/a # numpy中的除是对矩阵元素展开计算

Python中的numpy矩阵运算相关推荐

  1. python中的numpy模块

    参考  python中的numpy模块 - 云+社区 - 腾讯云 目录 NumPy 教程 学习本教程前你需要了解 NumPy 应用 相关链接 NumPy 安装 1.使用已有的发行版本 2.使用 pip ...

  2. python有哪些作用-Python中的NumPy是什么?有什么作用?

    Python中的NumPy是什么?NumPy或NumericPython是用于科学计算的通用数组处理python软件包.它包含许多强大的功能,其中包括:具有许多有用功能的健壮的多维数组对象.用于将其他 ...

  3. pythonchar中的拟合方法_在python中利用numpy求解多项式以及多项式拟合的方法

    构建一个二阶多项式:x^2 - 4x + 3 多项式求解 >>> p = np.poly1d([1,-4,3]) #二阶多项式系数 >>> p(0) #自变量为0时 ...

  4. [转载] python中的numpy模块和pandas模块的区别_numpy 模块和 pandas 模块

    参考链接: Python中的numpy.radians和deg2rad 一.numpy模块 1.1 numpy 简介 numpy是python的一种开源的数值计算扩展库,这种库可用来存储和处理大型nu ...

  5. [转载] Python中的numpy linalg模块

    参考链接: Python中的numpy.bmat 原文链接:https://www.cnblogs.com/xieshengsen/p/6836430.html # 线性代数 # numpy.lina ...

  6. [转载] [转载] python中的Numpy库入门

    参考链接: Python中的numpy.ones_like 参考链接: Python中的numpy.full_like 目录 N维数组对象: ndarray引例ndarray对象的属性ndarray数 ...

  7. [转载] python中的Numpy库入门

    参考链接: Python中的numpy.full_like 目录 N维数组对象: ndarray引例ndarray对象的属性ndarray数组的元素类型ndarray数组的创建方法从Python中的列 ...

  8. Python中的numpy.zeros()

    Python numpy.zeros() function returns a new array of given shape and type, where the element's value ...

  9. Python中利用numpy将数组(矩阵)存成csv文件,将csv文件读取为数组(矩阵)

    Python中利用numpy将数组(矩阵)存成csv文件,将csv文件读取为数组(矩阵) 本博客转载自:https://blog.csdn.net/vernice/article/details/50 ...

最新文章

  1. Git 最全命令总结都在这里了
  2. SharePoint的Reporting Service Viewer Web Part
  3. java 班级号_Java 学校班级回忆录网站管理系统
  4. 美味果冻(牛客练习赛53B)
  5. html:(30):继承和特殊性
  6. jboss连接池,断开后自动重连功能
  7. chrome ninja 文件_ninja和gn
  8. 我的内核学习笔记2:platform设备模型
  9. 对大学生使用计算机的看法英语作文,对社交网站的看法大学生英语作文 关于对社交网站的看法的大学生英语作文...
  10. openopc.opcerror: dispatch: 无效的类字符串_实战PyQt5: 064-MV框架中的Model类
  11. [洛谷P3388]【模板】割点(割顶)
  12. 【读书笔记】金字塔原理-目录
  13. ESP32笔记(2) flash使用
  14. 计算机在通风网络中的应用,普适计算在煤矿通风网络解算中的应用研究
  15. 深度学习小白入门教程(一):以英雄联盟为例,爬取你感兴趣图片,构建你自己的数据集
  16. 【微信小程序】引入Base64 图标库
  17. SQL学习记录2--基础查询与排序
  18. java中BOM是什么_javaScript中BOM
  19. 【计算机组成原理】CPU的前世今生
  20. ant-design-vue 自由切换 暗黑模式dark

热门文章

  1. Qt Creator在设备上预览
  2. C++统计10亿以内所有的质素(素数)的实现算法(附完整源码)
  3. C++ 文件和文件流
  4. python字典按键值排序_Python字典『键 值』排序
  5. 2020-12-23
  6. ValidateUtil
  7. struts,ognl,valuestack
  8. 你该认识这样的Linux_shell之变量操作符与分支判断
  9. 检索数据_10_通过多条件组合返回数据
  10. Qt学习笔记之项目管理(pro)文件