我最近一直处理numpy / scipy中的矩阵构造,我正在尝试找到以下问题的最佳解决方案 .

我有一个函数,它返回元组,由矩阵行索引和相应的行组成 . 此时,我只是构造一个numpy矩阵,例如:

mat = np.zeros((n, n))

其中n是矩阵维度 . 我逐步循环遍历函数结果,并按以下方式将相应的行添加到此矩阵:

mat[result_tuple[0],:] = result_tuple[1]

它工作得很好,速度很快 . 问题是,这是非常耗费内存的 . 有没有办法用scipy.sparse模块有效地做到这一点?

我目前的尝试有效,但速度很慢:

for result_tuple in results:
    col    = range(0,n,1)
    row    = np.repeat(result_tuple[0],n)
    val    = result_tuple[1]
    mat = mat +  sp.csr_matrix((val, (row,col)), shape(n,n), dtype=float)

同样,结果元组由(行索引,行数据)组成 .

非常感谢你 .