通过对它们进行排名来找到最近的点

时间:2011-06-20 14:57:03

标签: python numpy scipy

我有一个N x D维度特征,我需要根据它们与1 x D维度向量的距离进行排名。在python中实现它的任何快速方法都不会递归地应用argmin

谢谢!

1 个答案:

答案 0 :(得分:3)

真正简单的是Squared Euclidean Distance,它的实现就像:

In []: F= randn(5, 3)
In []: t= randn(1, 3)
In []: ((F- t)** 2).sum(1)
Out[]: array([  8.80512,   4.61693,   2.6002,   3.3293,  12.41800])

其中F是要素,t是目标向量。因此排名将是:

In []: ((F- t)** 2).sum(1).argsort()
Out[]: array([2, 3, 1, 0, 4])

但是,如果您能够对案例进行更多描述,可能会有更合适的衡量标准,例如Mahalanobis distance