2011-06-20 8 views
0

私は、次元ベクトルとの距離に応じてランク付けする必要があるN x D次元の特徴を持っています。再帰的に適用することなく、Pythonでそれを実装する速い方法argminランク付けして一番近いポイントを見つける

ありがとうございます!本当に簡単

+0

[最も近い点の問題のペア]を見てください(http://en.wikipedia.org/wiki/Closest_pair_of_points_problem) – inspectorG4dget

答えて

3

何かがSquared Euclidean Distanceであり、それは、実装は次のようになります:

Fは機能や tターゲットベクトルです
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]) 

。したがって、順位は次のようになります。

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

、あなたのケースでより多くのを記述することができます場合は、Mahalanobis distanceなどのより適切な措置を、そこに存在する可能性があります。

+0

@unutbu:明らかに編集しましたが、違いはわかりません。 29人の削除されたキャラクターは何でしたか?ありがとう – eat

+0

私は1から5までの範囲のマトリクスを期待していましたが、どの点がどれくらい近くにあるかに応じて。これは私が正確に求めるものではありません。 – JustInTime

+0

@eat:申し訳ありませんが、私は何をしたのかメモを残しておくべきでした。リンク(http://en.wikipedia.org/wiki/http://en.wikipedia.org/wiki/Mahalanobis_distanceのようなもの)が壊れていました。 – unutbu

関連する問題