python - 哪种 SciPy 稀疏矩阵类最适合计算距离矩阵?

标签 python scipy scikit-learn distance sparse-matrix

我有一个相对较大的 NumPy 数组(近 300k 行和 20 多列,尽管大多数值为 0),我需要使用 scikit-learn 的 pairwise_distances 计算距离矩阵功能。

不幸的是,除非我将输入数组转换为稀疏矩阵,否则此过程会遇到内存错误。 SciPy 提供了许多 sparse matrix classes我不知道哪一个最适合这种特殊情况。

我发现了一个SO answer有利于 CSR 或 CSC,但我不清楚哪一个最适合计算距离矩阵。欢迎任何建议!

最佳答案

CSR 按行排序,CSC 按列排序。因此,使用 CSR 访问行会更快,使用 CSC 访问列会更快。自 sklearn.metrics.pairwise.pairwise_distances使用 X 作为输入,其中行是实例,列是属性,它将访问稀疏矩阵中的行。因此,使用 CSR 可能会更有效。

关于python - 哪种 SciPy 稀疏矩阵类最适合计算距离矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27235744/

相关文章:

python - 寻找逻辑回归的系数

python - 计算 SGDClassifier 数据损失函数值的方法?

python - 如何使用均方根误差来优化 Scikit-Learn 中的神经网络?

python - 使用 "ComboboxSelected"的一个函数来读取多个组合框

python - 使用 MultiIndex df (pandas) 进行 bool 索引

python - 如何在 python 中绘制一组点?

numpy - 用numpy实现各向同性平方指数核

python - 为什么我的 Popen 管道堵塞?

python - Pandas 中每组的排名顺序

python - : import scipy as sp/sc 的官方缩写