问题:我有一个M>=N的MxN矩阵。我想确定这个矩阵中线性相关的列向量群
我希望在numpy中有一种快速而简单的方法来做到这一点。
>>> a = np.random.randn(7, 6)
>>> a[:, 3] = 2*a[:, 0]-a[:, 4]
>>> a[:, 5] = 3*a[:, 1]
我正在寻找一个函数get_column_groups,它将返回
>>> get_column_groups(a)
array([0, 1, 2, 0, 0, 1])
我猜如果它还返回每个组的排名,则加分,例如:
>>> groups, group_ranks = get_column_groups(a)
>>> groups
array([0, 1, 2, 0, 0, 1])
>>> group_ranks
[2, 1, 1]
就我所理解的问题而言,计算矩阵的火花是您所请求的子问题,因此在大多数情况下使其np完全。
可能有一些算法比仅对大小为rank(a)
的列进行组合求值做得更好,但这只是一个开始。