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