我将为您翻译以下内容:我遇到了一个问题:我有一些非常大的矩阵(比如说至少2000x2000,未来可能会达到10000x10000),它们的秩很小(2或3,称之为N),我需要找到一种高效的Python例程来提取线性独立的行(或列,矩阵是对称的!)从中。我尝试取QR分解的Q矩阵的前N列,但似乎不能正确工作(也许这是错误的?)。
这是我用来实现Ami Tavory建议方法的Python代码:
这是我用来实现Ami Tavory建议方法的Python代码:
from numpy import absolute
from numpy.linalg import qr
q = qr(R)[1] #R is my matrix
q = absolute(q)
sums = sum(q,axis=1)
i = 0
while( i < dim ): #dim is the matrix dimension
if(sums[i] > 1.e-10):
print "%d is a good index!" % i
i += 1
这应该告诉我行是否为非零,因此R的第I列是否线性独立。