如何在python中有效地存储和操作稀疏二进制矩阵?

Moo*_*ker 5 python numpy matrix

二元矩阵是元素可能只有 0 或 1 的矩阵。

我在可以轻松访问的外部数据库中有一个大型(~40GB)稀疏二进制矩阵。我想为这个矩阵计算一些第一个奇异向量。Numpy 数组和 scipy 稀疏格式效率低下,因为它们不能存储 1 位值,它们至少存储 8 位整数。

事实上,我只能存储非零元素的索引,但在这种情况下,我必须自己重新实现 svd。

有没有办法避免这种情况?或者我必须对二进制矩阵使用一些特殊的 cpp\fortran 库?