- data 是一个包含稀疏矩阵的所有非零元素的数组。
- indices是一个将每个元素映射data到稀疏矩阵中的列的数组。
- indptr然后的元素映射data和indices所述稀疏矩阵的行。这是通过以下推理完成的:
- 如果稀疏矩阵有M行,indptr则是一个包含M+1 个元素的数组
- 对于第i行,[indptr[i]:indptr[i+1]]返回要取自第i行data并indices对应于第i行的元素的索引。所以假设indptr[i]=k和indptr[i+1]=l,对应于行i的数据将data[k:l]在列indices[k:l]。这是棘手的部分,我希望下面的例子有助于理解它。
编辑:data中用字母替换了数字以避免在以下示例中混淆。
indptr = np.array([0, 1, 3, 4, 7, 8, 9, 11])
indices = np.array([5, 1, 6, 3, 3, 4, 5, 0, 5, 3, 5])
data = np.array([a, b, c, d, e, f, g, h, i, g, k])
注意: indptr中的值必然会增加,因为indptr(下一行)中的下一个单元格指的是该行中data并indices对应于该行的下一个值。



