Scipy高效稀疏矩阵构造

时间:2017-10-27 11:42:07

标签: python numpy matrix scipy

我最近一直处理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)

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

非常感谢。

0 个答案:

没有答案