哪个SciPy稀疏矩阵类最适合计算距离矩阵?

时间:2014-12-01 19:29:43

标签: python scipy scikit-learn distance sparse-matrix

我有一个相对较大的NumPy数组(近300k行和20+列,但大多数值为0),我需要使用scikit-learn pairwise_distances函数计算距离矩阵。< / p>

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

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

1 个答案:

答案 0 :(得分:1)

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