有效地将大量 SciPy 稀疏矩阵条目设置为零
efficiently set a large number of SciPy sparse matrix entries to zero
我需要从 SciPy 稀疏矩阵中删除大量条目。
目前我将矩阵转换为 DOK 格式并单独分配
每次进入0.
m = m.todok()
for i, j in pruneme:
m[i,j] = 0
这非常慢。
有没有更快的方法?
您可以有效地设置 CSR 稀疏数组的元素,只要您不添加新的非零值,只需在数组下标元组即可:
i, j = zip(*pruneme) # assuming that pruneme is a python list
m[i, j] = 0.
m.eliminate_zeros()
这应该比构造两个数组快得多。
我需要从 SciPy 稀疏矩阵中删除大量条目。 目前我将矩阵转换为 DOK 格式并单独分配 每次进入0.
m = m.todok()
for i, j in pruneme:
m[i,j] = 0
这非常慢。
有没有更快的方法?
您可以有效地设置 CSR 稀疏数组的元素,只要您不添加新的非零值,只需在数组下标元组即可:
i, j = zip(*pruneme) # assuming that pruneme is a python list
m[i, j] = 0.
m.eliminate_zeros()
这应该比构造两个数组快得多。