我有一个矩阵,它是15714 x 541,并且这个矩阵似乎不是线性独立的。如何删除非线性独立的列?
我尝试使用此帖子中的解决方案:python 中非平方矩阵线性相关列的消除
但是,它说:ValueError:项的长度为541,而不是15714。
Q, R = np.linalg.qr(fixeff.T)
fixeff[np.abs(np.diag(R))>=1e-10]
fixeff是我描述的矩阵。
您可以使用scipy.linalg.qr
:
from scipy.linalg import qr
Q, R, P = qr(A, mode="economic", pivoting=True)
inv = P.argsort() # reversed order (necessary here)
good_columns = (np.abs(np.diag(R)) > 1e-10)[inv]
A = A[:,good_columns]