如何从 scipy csr_matrix 检索 indptr、索引?

How can I retrieve indptr, indices from scipy csr_matrix?

根据scipy.sparse.csr_matrixdocumentation,创建csr_matrix的方法有很多种。其中一种方法是将 dataindptrindices 作为输入。我想知道,是否有办法以相反的方向检索它们,即假设我创建了 my_csr_matrix,如下所示:

>>> indptr = np.array([0, 2, 3, 6])
>>> indices = np.array([0, 2, 2, 0, 1, 2])
>>> data = np.array([1, 2, 3, 4, 5, 6])
>>> my_csr_matrix = csr_matrix((data, indices, indptr), shape=(3, 3))
>>> my_csr_matrix.toarray()
array([[1, 0, 2],
       [0, 0, 3],
       [4, 5, 6]])

问题是,如何在不知道有关它们的信息或事先明确地 data 的情况下从 my_csr_matrix 检索 indptr 和索引?

字面意思就是 my_csr_matrix.indptrmy_csr_matrix.indices。您还可以使用 my_csr_matrix.data.

获取数据数组

这些属性记录在页面下方的“属性”标题下。

请注意,这些是稀疏矩阵表示使用的实际底层数组。修改这些数组将修改稀疏矩阵,除非您执行某些操作导致 CSR 矩阵分配新的底层数组。 (例如,my_csr_matrix[1, 1] = 7 会改变矩阵的稀疏结构,需要分配新的数组。)