Return 个稀疏矩阵的 scipy 个对角线元素

Return diagonal elements of scipy sparse matrix

给定一个scipy.sparse.csr.csr_matrix,有没有快速的方法return对角线上的元素?

我想这样做的原因是计算 inv(D) A,其中 D 是一个对角矩阵,其对角线元素与 A 一致(A 是我的稀疏矩阵,保证对角线上有非零值)。

使用csr_matrix.diagonal():

Returns the main diagonal of the matrix

示例:

>>> import numpy as np
>>> from scipy.sparse import csr_matrix
>>> mymat = csr_matrix((4, 4), dtype=np.int8)
>>> mymat.diagonal()
array([0, 0, 0, 0], dtype=int8)