在Python 3中使用NumPy创建一个低秩矩阵近似

3
我正在尝试理解如何使用numpy创建一个较低秩矩阵的近似值。我已经在numpy中创建了一个二维数组以及该矩阵的SVD分解。但是现在我想知道如何创建一个秩为2的矩阵近似值。如果我理解正确,所有需要做的就是将SVD的Sigma数组更改为仅包含最大的两个数字?由于它已经排序,这只需要将除前两列之外的所有其他列清零即可。
例如,如果我的数组如下:
#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

现在,我们的第二等级近似是否基本上只需要将s中第二列后面的所有列清零,这样就是我们的近似值?
1个回答

2

我明白了,基本上你只需要将矩阵s中剩余的值清零即可!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接