我有一个相对较大的NumPy数组(近300k行和20+列,但大多数值为0),我需要使用scikit-learn pairwise_distances函数计算距离矩阵。< / p>
不幸的是,除非我将输入数组转换为稀疏矩阵,否则此过程会遇到内存错误。 SciPy提供了许多sparse matrix classes,我不知道哪一个最适合这种特殊情况。
我找到了一个有利于CSR或CSC的SO answer,但我不清楚哪一个最适合计算距离矩阵。欢迎任何建议!
答案 0 :(得分:1)
CSR按行排序,CSC按列排序。因此,使用CSR可以更快地访问行,使用CSC访问列会更快。由于sklearn.metrics.pairwise.pairwise_distances
用作输入,X(其中行是实例,列是属性),因此它将从稀疏矩阵访问行。因此,使用CSR可能更有效。