【发布时间】:2014-01-02 05:14:11
【问题描述】:
当我从文件中读取数据时,我正在尝试构建和更新一个稀疏矩阵。
矩阵大小为100000X40000
更新稀疏矩阵的多个条目最有效的方法是什么? 具体来说,我需要将每个条目增加 1。
假设我有行索引[2, 236, 246, 389, 1691]
和列索引[117, 3, 34, 2757, 74, 1635, 52]
所以以下所有条目必须加一:
(2,117) (2,3) (2,34) (2,2757) ...
(236,117) (236,3) (236, 34) (236,2757) ...
等等。
我已经在使用lil_matrix,因为它在我尝试更新单个条目时给了我一个警告。
lil_matrix 格式已经不支持多次更新。
matrix[1:3,0] += [2,3] 给了我一个未实现的错误。
我可以通过单独递增每个条目来天真地做到这一点。我想知道是否有更好的方法来做到这一点,或者我可以使用更好的稀疏矩阵实现。
我的电脑也是一台普通的 i5 机器,有 4GB 内存,所以我必须小心不要把它炸毁:)
【问题讨论】:
-
它适用于
lil_matrix,如果右侧是匹配形状的numpy数组,如A[1:3, 0] += np.array( [[ 2 ],[ 3 ]] ) -
是的,我想通了。但是您对我的具体问题有什么建议吗?就像给定行索引和列索引一样,我想增加问题中给出的所有组合条目。
标签: python python-2.7 matrix scipy sparse-matrix