linalg
通常指 线性代数(linear algebra) 模块;在 Python 里多指 numpy.linalg
(基础)或 scipy.linalg
(更全更稳)。给你一份极简速查👇
NumPy numpy.linalg
常用函数速查
-
解线性方程
np.linalg.solve(A, b)
:解方阵线性方程组 Ax=bA x=b(要求 det(A)≠0\det(A)\neq0) -
最小二乘
np.linalg.lstsq(A, b, rcond=None)
:解过定/欠定系统的最小二乘解 -
行列式/秩/范数
np.linalg.det(A)
:det(A)\det(A)
np.linalg.matrix_rank(A)
:秩
np.linalg.norm(A, ord=2)
:向量/矩阵范数(按ord
选择) -
逆/伪逆
np.linalg.inv(A)
:矩阵逆(仅非奇异方阵)
np.linalg.pinv(A)
:Moore–Penrose 伪逆 -
特征分解 / SVD
np.linalg.eig(A)
:一般方阵的特征值与特征向量
np.linalg.eigh(A)
:对称/厄米矩阵特征分解(更稳定)
np.linalg.svd(A, full_matrices=True)
:奇异值分解 A=UΣVTA=U\Sigma V -
其他
np.linalg.qr(A)
:QR 分解
np.linalg.cholesky(A)
:Cholesky 分解(要求对称正定)
np.linalg.slogdet(A)
:返回 (sign,log∣det(A)∣)(\text{sign}, \log|\det(A)|)(数值稳定)
迷你示例
import numpy as np
A = np.array([[3., 2.],
[1., 4.]])
b = np.array([7., 5.])
x = np.linalg.solve(A, b) # 解 Ax=b
detA = np.linalg.det(A) # 行列式
rankA = np.linalg.matrix_rank(A) # 秩
vals, vecs = np.linalg.eig(A) # 特征分解
U, S, VT = np.linalg.svd(A) # SVD
A_inv = np.linalg.inv(A) # 逆
x_ls, *_ = np.linalg.lstsq(A, b, rcond=None) # 最小二乘