2017-07-25 5 views
-1

ときどき関数が間違ったデータを返すことがあるので、私はうんざりしています!私は周りに700ポイントでnumpyの配列があります。Pythonで関数がデバッグされない場合があります。

np.array =[[ 1.00000000e+01 -4.65000000e+02] 
      [ 1.78319153e+01 -4.60252579e+02] 
      ...] 

を私は与えられた点があります。

point [32.121456577748098, -241.01907826915999] 

をし、ちょうど私の配列内に最も近いポイントまたはインデックスがどこにあるか確認したい私与えられた点。素敵な作品

array[spatial.KDTree(array).query(point)[1]] 

は、私が最も近い点を見つけるために、この行を使用しています。しかし、時にはうまくいきません!私の配列から最も近いものではない項目を返します。 興味深い事実は、両方の機能が同時に動作していない類似の機能またはソリューションを試してみることです。なぜそれがうまくいくのかわからない。配列とポイントは、TCPとUDPも使用するメインループで新たに生成されます。どうすれば一般的にデバッグできますか?

ありがとうございます!

+0

あなたは 'クエリ()'メソッドの作品、それ以外の他のユーザーがnumpyのに対してバグレポートを上げていたと仮定しなければなりません。 – quamrana

+1

おそらく複数の配列を持ち、間違った配列を検索していますか? – quamrana

答えて

0

numpyでこれを行うのはなぜですか?

distance = np.sum((yourlist - yourpoint)**2.)**(1/2.) 
index = np.argmin(distance) 
0

それはあなたの特定の質問に直接答えではないですが、私はあなたが単にnumpy.linalg.norm(data - point, axis=1)を計算して、最小ノルムのインデックスを検索するためにnumpy.argmin()を使用することを示唆しています。基本的に

dist = numpy.linalg.norm(data - point, axis=1) 
minindex = np.argmin(dist) 
closest_pt = data[minindex] 
関連する問題