高效地将大量SciPy稀疏矩阵条目设置为零

3

我需要从一个SciPy稀疏矩阵中修剪大量条目。 目前,我将矩阵转换为DOK格式,并逐个将每个条目分配为0。

m = m.todok()
for i, j in pruneme:
  m[i,j] = 0

这太慢了。

有更快的方法吗?


m 通常是什么格式? - Roland W
@RolandW 它最初是一个 csr_matrix。 - Daniel Mahler
1个回答

4
您可以通过使用元组对CSR稀疏数组的元素进行有效地设置,只要不添加新的非零元素即可:
i, j = zip(*pruneme) # assuming that pruneme is a python list
m[i, j] = 0.
m.eliminate_zeros()

那应该比构造两个数组要快得多。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接