在numpy中求矩阵的线性相关列



问题:我有一个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)的列进行组合求值做得更好,但这只是一个开始。

相关内容

  • 没有找到相关文章

最新更新