如何在 scipy 稀疏矩阵中确定索引数组的顺序?

Posted

技术标签:

【中文标题】如何在 scipy 稀疏矩阵中确定索引数组的顺序?【英文标题】:How is the order of the indices array determined in a scipy sparse matrix? 【发布时间】:2021-12-06 03:25:54 【问题描述】:

我有两个具有相同非零位置的 scipy.sparse.csr_matrices。我假设他们的 indptr 和 indices 数组是相同的。但事实证明,只有它们的 indptr 数组是相同的(并且已排序)。存储任何行的列的索引数组是任何行的排列。

在上图中,让 A = sum_predictions 和 B = Yt_preds[4] 为两个矩阵。两个矩阵都具有相同的非零位置。我们看到它们的 indptr 数组(每行中的非零数)是相同的。然而,索引数组(任何特定行的列)是彼此的排列。

scipy稀疏矩阵中索引数组的顺序是如何确定的?如何获得具有相同非零位置的两个矩阵具有相同 indptr 和索引数组的表示?

【问题讨论】:

你可以通过调用mat.sort_indices()对索引进行排序 【参考方案1】:

解决方案就是CJR提出的:mat.sortindices()

【讨论】:

以上是关于如何在 scipy 稀疏矩阵中确定索引数组的顺序?的主要内容,如果未能解决你的问题,请参考以下文章

Scipy 稀疏矩阵作为 DataFrame 列

如何通过索引将 scipy.sparse 矩阵分配给 NumPy 数组?

如何将 numpy.matrix 或数组转换为 scipy 稀疏矩阵

scipy稀疏矩阵的二维索引

用于 numpy 数组和 scipy 稀疏矩阵的 Tensordot

使用 scipy 在 python 中构建和更新稀疏矩阵