寻址Scipy稀疏矩阵中的范围

时间:2011-02-03 11:57:40

标签: python matrix numpy scipy sparse-matrix

我有一个大矩阵,目前处于numpy状态,我希望将其移植到scipy稀疏矩阵,因为保存numpy(2000,2000)矩阵的文本表示超过100mb。

(1)scipy中可用的稀疏矩阵似乎过多[例如,lil_matrixdok_matrix - 哪一个对于简单的递增是最佳的,并且有效地保存到数据库中?

(2) 我希望能够像这样解决矩阵中的范围:

>> import numpy as np    
>> a = np.zeros((1000,1000))
>> a[3:5,4:7] += 1

稀疏矩阵似乎不可能这样做?

1 个答案:

答案 0 :(得分:6)

我不能说哪种存储效率最高。这将取决于您的数据。

我可以说,+=运算符可以工作,只是你不能依赖通常的数组广播规则:

>>> m = sparse.lil_matrix((100,100))
>>> m[50:56,50:56]+=scipy.ones((6,6))
>>> m[50,50]  #1.0