如何从 scipy csr_matrix 检索 indptr、索引?
How can I retrieve indptr, indices from scipy csr_matrix?
根据scipy.sparse.csr_matrix
的documentation,创建csr_matrix
的方法有很多种。其中一种方法是将 data
、indptr
和 indices
作为输入。我想知道,是否有办法以相反的方向检索它们,即假设我创建了 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.indptr
和 my_csr_matrix.indices
。您还可以使用 my_csr_matrix.data
.
获取数据数组
这些属性记录在页面下方的“属性”标题下。
请注意,这些是稀疏矩阵表示使用的实际底层数组。修改这些数组将修改稀疏矩阵,除非您执行某些操作导致 CSR 矩阵分配新的底层数组。 (例如,my_csr_matrix[1, 1] = 7
会改变矩阵的稀疏结构,需要分配新的数组。)
根据scipy.sparse.csr_matrix
的documentation,创建csr_matrix
的方法有很多种。其中一种方法是将 data
、indptr
和 indices
作为输入。我想知道,是否有办法以相反的方向检索它们,即假设我创建了 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.indptr
和 my_csr_matrix.indices
。您还可以使用 my_csr_matrix.data
.
这些属性记录在页面下方的“属性”标题下。
请注意,这些是稀疏矩阵表示使用的实际底层数组。修改这些数组将修改稀疏矩阵,除非您执行某些操作导致 CSR 矩阵分配新的底层数组。 (例如,my_csr_matrix[1, 1] = 7
会改变矩阵的稀疏结构,需要分配新的数组。)