Python中的numpy矩阵运算
来源:互联网 发布:淘宝关于产品瑕疵说明 编辑:程序博客网 时间:2024/06/05 11:29
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')>>> amatrix([[4, 3], [2, 1]])>>> bmatrix([[1, 2], [3, 4]])>>> a*bmatrix([[13, 20], [ 5, 8]])
(2)matrix 和 array 都可以通过objects后面加
>>> c=np.array([[4, 3], [2, 1]])>>> d=np.array([[1, 2], [3, 4]])>>> c*darray([[4, 6], [6, 4]])
(3)
>>> a**2matrix([[22, 15], [10, 7]])>>> c**2array([[16, 9], [ 4, 1]])
因为a是个matrix,所以
(3)numpy中矩阵间的除法运算
>>> a/2matrix([[2, 1], [1, 0]])>>> a/bmatrix([[4, 1], [0, 0]])
取得是整数
基本运算
import numpy as npa = np.mat([[-1,2],[2,3]])b = np.mat([[3,4],[4,5]])print 'a:\n',aprint 'b:\n',bprint '\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",eigvalprint'\n a eig vector:\n',eigveca = np.zeros([4,5])print '\n all zero \n',aa = np.ones([7,6])print '\n all one \n',aa = np.eye(4,7)print '\n 4x7 diagonal \n',aa = np.diag(range(5))print '\n 5x5 diagonal \n',aa = 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:2 a 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中的除是对矩阵元素展开计算
阅读全文
2 0
- Python中的numpy矩阵运算
- python numpy包---矩阵运算
- Python矩阵运算库numpy常用函数
- Python—numpy做矩阵运算
- numpy中的矩阵和数组运算
- python中的矩阵运算
- python中的矩阵运算
- python中的矩阵运算
- python中的矩阵运算
- Python第三方矩阵库numpy矩阵基本运算
- <Python> Numpy中的矩阵乘法问题
- numpy 矩阵运算
- NumPy矩阵运算
- NumPy 数组矩阵运算
- numpy 矩阵运算
- Numpy矩阵运算
- 【python学习笔记】18:numpy数组函数与矩阵运算
- python之numpy库学习常用函数(矩阵运算)
- 1119. Pre- and Post-order Traversals (30)
- ANDROID样式的开发:SHAPE篇
- 大一菜鸟编写的移动的字母程序
- opencv打开大恒水晶相机教程
- 最大公约数GCD
- Python中的numpy矩阵运算
- 双线性差值算法
- 第九章:内存模型和名称空间
- C语言编译通过,运行结果显示拒绝访问
- 小迪教程第十天——文件上传解析漏洞
- 实例详解Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化(二)
- 从YOLOv1谈到YOLOv2(2)训练与损失函数
- 10月停课集训第二周总结
- Javascript面向对象编程(三):非构造函数的继承