线性代数
numpy.linalg模块包含线性代数的函数, 可以求逆矩阵,求特征值,解线性方程组及求行列式
计算逆矩阵
Key_Function
np.linalg.inv函数, 求出给定矩阵的逆矩阵
np.mat函数, 创建矩阵
Code
import numpy as np A = np.mat("0 1 2; 1 0 3; 4 -3 8") print(A) ''' [[ 0 1 2] [ 1 0 3] [ 4 -3 8]] ''' inverse = np.linalg.inv(A) print(inverse) ''' [[-4.5 7. -1.5] [-2. 4. -1. ] [ 1.5 -2. 0.5]] ''' print(A * inverse) ''' [[ 1. 0. 0.] [ 0. 1. 0.] [ 0. 0. 1.]] '''
求解线性方程组
矩阵可以对向量进行线性变换
Key_Function
np.linalg.solve函数, 求解形如Ax=b的线性方程组, 其中A为矩阵, b为一维或二维的数组, x是未知变量
np.dot函数, 计算两个数组的点积, 即内积
Code
import numpy as np A = np.mat("1 -2 1; 0 2 -8; -4 5 9") print(A) ''' [[ 1 -2 1] [ 0 2 -8] [-4 5 9]] ''' b = np.array([0, 8, -9]) print(b) ''' [ 0 8 -9] ''' x = np.linalg.solve(A, b) print(x) # [ 29. 16. 3.] print(np.dot(A, x)) # [[ 0. 8. -9.]]