【发布时间】:2017-06-25 22:57:16
【问题描述】:
我有一个名为 Z 的巨大矩阵(想想 20000 x 1000),我需要从中生成成对距离,因此我目前使用 sklearn.metrics.pairwise.euclidean_distances(Z,Z) 来生成成对距离。
但是,现在我需要搜索结果以找到最小的 X 距离,但我需要它们的索引。
一个例子是:
A = 20000 x 1000 numpy.ndarray
B = sklearn.metrics.pairwise.euclidean_distances(A, A)
C = ((2400,100), (800,900), (29,999)) if X = 3
这样做的最佳方法是什么?我看到了numpy.unravel_index(a.argmax(), a.shape),但我不确定它是否适用于这种情况。
【问题讨论】:
-
scipy.spatial.distance.squareform 将成对距离转换为压缩形式/从压缩形式转换。一种选择是以压缩形式找到 argmin,并将该索引映射回上三角数组。搜索
pdist和squareform的最新 scipy 问题。
标签: python numpy scikit-learn