寻址Scipy稀疏矩阵中的范围

mal*_*ngi 4 python numpy matrix 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
Run Code Online (Sandbox Code Playgroud)

对于稀疏矩阵来说,这似乎是不可能的?

Pau*_*aul 6

我不能说哪个最有效存储.这将取决于您的数据.

我可以说,+=操作员工作,只是你不能依赖通常的阵列广播规则:

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