【发布时间】:2017-04-11 14:16:24
【问题描述】:
搜索该站点后,我没有找到解决此问题的方法。它很简单,我想更新一个已经存在的 coo 稀疏矩阵。所以假设我已经启动了一个 coo 矩阵:
from scipy.sparse import coo_matrix
import numpy as np
row = np.array([0, 3, 1, 0])
col = np.array([0, 3, 1, 2])
data = np.array([4, 5, 7, 9])
a=coo_matrix((data, (row, col)), shape=(4, 4)).toarray()
array([[4, 0, 9, 0],
[0, 7, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 5]])
很好,但是如果我只想要一个空的稀疏数组并仅使用形状启动它,然后多次更新值怎么办。我成功的唯一方法是在我的旧矩阵中添加一个新的 coo 矩阵
a=coo_matrix((4, 4), dtype=np.int8)
a=a+coo_matrix((data, (row, col)), shape=(4, 4))
a.toarray()
array([[4, 0, 9, 0],
[0, 7, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 5]])
我想多次更新这个稀疏数组。但这需要相当长的时间,因为我每次更新都调用 coo 函数。必须有更好的方法,但我觉得文档有点轻(至少我读过的)或者我只是没有看到它。
非常感谢
【问题讨论】:
标签: python arrays numpy scipy sparse-matrix