我想迭代地填充scipy稀疏的coo_matrix
append
通过for循环和一些规则,例如所有的(我知道那里有一个带数据的构造函数但我不能使用它,因为规则更复杂)。我怎样才能做到这一点?我还没有找到任何关于它的文档。
答案 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中所述。