0

我有一个稀疏矩阵 A 和一个列向量 a,

In[1]: A
Out[1]: <256x256 sparse matrix of type '<type 'numpy.float64'>'
with 512 stored elements (blocksize = 2x2) in Block Sparse Row format>

In[2]: len(a)
Out[2]: 70

我会写一个子矩阵。我为此编写的代码是:

Sub = A.tolil()[a,:][:,a]

解决问题所需的时间相当长。我想知道是否可以修改代码以加快处理速度。

4

1 回答 1

0

csr 矩阵具有快速的行切片;csc 矩阵具有快速的列切片。大多数稀疏类型之间的转换都经过了很好的优化,因此我建议尝试使用适当的类型来执行要执行的切片类型。

Sub = A.tocsr()[a,:].tocsc()[:,a]

于 2014-01-11T10:30:48.903 回答