2016-03-08 38 views
3

我需要从SciPy稀疏矩阵中剪除大量条目。 目前我的矩阵转换为DOK格式,并单独分配 每个条目为0有效地将大量SciPy稀疏矩阵条目设置为零

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

这是极其缓慢。

有没有更快的方法?

+0

'm'通常具有什么格式? –

+0

@RolandW它开始作为一个csr_matrix。 –

回答

4

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

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

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