SVD动画图解–Wiki
Eigen Svd 和 np.linalg.svd都可以用于SVD计算,但两者却存在细微的差别。
python
import numpy as np
data=np.array([
[0.99337785, 0.08483806, 0.07747866, -92.91055059],
[-0.07889607, 0.99392169, -0.07677948, -42.2437898],
[-0.08352154, 0.07015827, 0.99403318, 396.22910711],
[0, 0, 0, 1]])
U, S, Vt = np.linalg.svd(data)
k = 4
U_reduced = U[:, :k]
S_reduced = np.diag(S[:k