通过for循环填充scipy sparse.coo_matrix

时间:2018-03-18 22:04:48

标签: python scipy sparse-matrix

我想迭代地填充scipy稀疏的coo_matrix

append

通过for循环和一些规则,例如所有的(我知道那里有一个带数据的构造函数但我不能使用它,因为规则更复杂)。我怎样才能做到这一点?我还没有找到任何关于它的文档。

1 个答案:

答案 0 :(得分:0)

您可以通过for循环直接填充scipy sparse.coo_matrix

您最好的选择是将coo_matrix转换为可以像字典一样被索引的dok_matrix,然后在需要时将其还原回coo_matrix。

import numpy as np
from scipy.sparse import coo_matrix
m = coo_matrix((3, 4), dtype=np.int8)

m = m.todok() # convert to dok
for i in xrange(10):
    for j in xrange(5):
        m[i, j] = i + j # update the matrix, note the particular access format

m = m.tocoo() # convert back to coo

这是最快的方法,如this answer中所述。