我试图了解如何使用 numpy 创建低秩矩阵近似。我已经在 numpy 中创建了一个二维数组以及这个矩阵的 SVD。但我现在想知道的是,我将如何创建这个矩阵的秩 2 的近似值。如果我理解正确,所有这一切都需要将 SVD 的 Sigma 数组更改为仅包含 2 个最大的数字?并且由于它已经被订购了,这将只需要将除前 2 列之外的所有其他列归零?
例如,如果我的数组是这样的
#This is my 2-D array which holds my original values
listA
#This is the SVD of this list
listSVD = np.linalg.svd(listA)
u, s, v = listSVD
现在基本上是我们的等级 2 近似值将涉及将 s 中第二列之后的所有列归零,这就是我们的近似值吗?
最佳答案
Nvm 我想通了,所以基本上是的,你只需要将 s 矩阵中剩下的值清零!
关于python-3.x - 在 python 3 中使用 numpy 创建低秩矩阵近似,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59915637/