子矩阵在 scipy.



>我有一个稀疏矩阵 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]

解决问题所需的时间相当长。我想知道是否可以修改代码以使过程更快。

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

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

最新更新