我有一个稀疏矩阵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]
解决问题所需的时间很长。我想知道是否可以修改代码以使流程更快。
答案 0 :(得分:0)
csr矩阵具有快速行切片; csc矩阵具有快速列切片。大多数稀疏类型之间的转换都得到了很好的优化,因此我建议尝试使用适当的类型来执行切片类型。
Sub = A.tocsr()[a,:]。tocsc()[:,a]