python-3.x - 在 python 3 中使用 numpy 创建低秩矩阵近似

标签 python-3.x numpy matrix linear-algebra svd

我试图了解如何使用 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/

相关文章:

python - 为什么这个 Python 异步脚本永远不会完成?

python - Django 教程中的 __str__(self) 返回对象而不是文本

python - 如何获取特定列表元素的平均值

python - 为 scikit 线性回归模型生成 numpy 数组

matlab - 不使用 for 循环从 MATLAB 矩阵中提取数据

python - 如何使用 TensorFlow 正确实现动态卷积神经网络

python - 程序中的数组

python - python中的莱文森算法

r - 如何阻止 R 在我的数字列标签前添加 X?

java - 在 Java 中确定辅因子矩阵