Numpy库进阶教程(一)求解线性方程组
前言
Numpy是一个非常强大的python科学计算库,为了机器学习的需要,想深入研究一下Numpy库的用法,用这个系列的博客,记录下我的学习过程。 系列: 正在持续更新
计算逆矩阵
numpy.linalg模块包含线性代数的函数,可以用来求矩阵的逆,求解线性方程组、求特征值及求解行列式。 mat函数可以用来构造一个矩阵,传进去一个专用字符串,矩阵的行与行之间用分号隔开,行内的元素用空格隔开。
import numpy as np A = np.mat("0 1 2;1 0 3;4 -3 8") print "A ", A
现在我们使用inv函数计算逆矩阵
inverse = np.linalg.inv(A) print "inverse of A ", inverse
我们检查一下两矩阵相乘的结果
print "Check ", A * inverse
需要说明的是这里的 A * inverse是两个矩阵中对应元素逐个相乘,这就要求了两矩阵的行和列相等。
求解线性方程组
创建矩阵A和数组b:
A = np.mat("1 -2 1;0 2 -8;-4 5 9") print "A ", A b = np.array([0, 8, -9]) print "b ", b
这里可以直接调用linalg中的solve函数求解
x = np.linalg.solve(A, b) print "Solution", x
使用dot函数检查解的正确性:
print "Check ", np.dot(A , x)
这里的dot函数是两个矩阵相乘,而非矩阵内元素逐个相乘
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
联邦学习 | 无处不在的隐私泄露!