Python中的numpy矩阵运算
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矩阵运算相关推荐
- python中的numpy模块
参考 python中的numpy模块 - 云+社区 - 腾讯云 目录 NumPy 教程 学习本教程前你需要了解 NumPy 应用 相关链接 NumPy 安装 1.使用已有的发行版本 2.使用 pip ...
- python有哪些作用-Python中的NumPy是什么?有什么作用?
Python中的NumPy是什么?NumPy或NumericPython是用于科学计算的通用数组处理python软件包.它包含许多强大的功能,其中包括:具有许多有用功能的健壮的多维数组对象.用于将其他 ...
- pythonchar中的拟合方法_在python中利用numpy求解多项式以及多项式拟合的方法
构建一个二阶多项式:x^2 - 4x + 3 多项式求解 >>> p = np.poly1d([1,-4,3]) #二阶多项式系数 >>> p(0) #自变量为0时 ...
- [转载] python中的numpy模块和pandas模块的区别_numpy 模块和 pandas 模块
参考链接: Python中的numpy.radians和deg2rad 一.numpy模块 1.1 numpy 简介 numpy是python的一种开源的数值计算扩展库,这种库可用来存储和处理大型nu ...
- [转载] Python中的numpy linalg模块
参考链接: Python中的numpy.bmat 原文链接:https://www.cnblogs.com/xieshengsen/p/6836430.html # 线性代数 # numpy.lina ...
- [转载] [转载] python中的Numpy库入门
参考链接: Python中的numpy.ones_like 参考链接: Python中的numpy.full_like 目录 N维数组对象: ndarray引例ndarray对象的属性ndarray数 ...
- [转载] python中的Numpy库入门
参考链接: Python中的numpy.full_like 目录 N维数组对象: ndarray引例ndarray对象的属性ndarray数组的元素类型ndarray数组的创建方法从Python中的列 ...
- Python中的numpy.zeros()
Python numpy.zeros() function returns a new array of given shape and type, where the element's value ...
- Python中利用numpy将数组(矩阵)存成csv文件,将csv文件读取为数组(矩阵)
Python中利用numpy将数组(矩阵)存成csv文件,将csv文件读取为数组(矩阵) 本博客转载自:https://blog.csdn.net/vernice/article/details/50 ...
最新文章
- Git 最全命令总结都在这里了
- SharePoint的Reporting Service Viewer Web Part
- java 班级号_Java 学校班级回忆录网站管理系统
- 美味果冻(牛客练习赛53B)
- html:(30):继承和特殊性
- jboss连接池,断开后自动重连功能
- chrome ninja 文件_ninja和gn
- 我的内核学习笔记2:platform设备模型
- 对大学生使用计算机的看法英语作文,对社交网站的看法大学生英语作文 关于对社交网站的看法的大学生英语作文...
- openopc.opcerror: dispatch: 无效的类字符串_实战PyQt5: 064-MV框架中的Model类
- [洛谷P3388]【模板】割点(割顶)
- 【读书笔记】金字塔原理-目录
- ESP32笔记(2) flash使用
- 计算机在通风网络中的应用,普适计算在煤矿通风网络解算中的应用研究
- 深度学习小白入门教程(一):以英雄联盟为例,爬取你感兴趣图片,构建你自己的数据集
- 【微信小程序】引入Base64 图标库
- SQL学习记录2--基础查询与排序
- java中BOM是什么_javaScript中BOM
- 【计算机组成原理】CPU的前世今生
- ant-design-vue 自由切换 暗黑模式dark