【发布时间】:2015-03-08 16:29:25
【问题描述】:
我有一个巨大的稀疏矩阵A
<5000x5000 sparse matrix of type '<type 'numpy.float64'>'
with 14979 stored elements in Compressed Sparse Column format>
我需要为谁删除线性相关的行。我有一个先验,j 行将是依赖的。我需要
- 找出哪些行集是线性相关的
- 对于每一组,保留任意一行并删除其他行
我试图关注this question,但稀疏矩阵的相应方法scipy.sparse.linalg.eigs 这么说
k:所需的特征值和特征向量的数量。 k 必须小于 N。不可能计算 a 的所有特征向量 矩阵。
我应该如何进行?
【问题讨论】:
-
这里可能正确的工具是QR decomposition。 Scipy 仅适用于密集矩阵。然而,Gram-Schmid orthonormalization 对于稀疏矩阵的编程应该相对简单,尽管让它变得更快可能需要更多的努力。线性相关行由在正交化期间变为零(或接近于零)的行表示。您可以检测并记录该行的索引 --- 这些是您要删除的索引。