【发布时间】:2019-12-08 02:23:59
【问题描述】:
我正在用简单矩阵测试 svd 分解
A=np.array([[1,2,3],[4,5,6]])
但是当我使用时:
U,D,V=np.linalg.svd(A)
输出是 U whit 形状 (2,2)、D 形状 (2,) 和 V 形状 (3,3) 问题是 V 的形状,svd 算法应该返回一个 2x3 矩阵,因为我的原始矩阵是一个 2x3 矩阵并且我得到 2 个奇异值,但是当我取 V[:2,:] 时它返回一个 3x3 矩阵并制作产品:
U.dot(np.diag(D).dot(V[:2,:]))
它返回原始矩阵A,这里发生了什么? 感谢您的阅读和回答,对不起语法,我开始用英语了
【问题讨论】:
标签: python-3.x numpy linear-algebra svd