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

时间:2016-03-08 09:55:27

标签: python numpy matrix scipy sparse-matrix

我需要从SciPy稀疏矩阵中删除大量条目。 目前我将矩阵转换为DOK格式并单独分配 每个条目都为0。

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

这非常慢。

有更快的方法吗?

1 个答案:

答案 0 :(得分:4)

只要不添加新的非零值,只需通过使用元组下标数组,就可以有效地设置CSR稀疏数组的元素:

i, j = zip(*pruneme) # assuming that pruneme is a python list
m[i, j] = 0.
m.eliminate_zeros()

这应该比构建两个数组快得多。