Skipy cKDTreeを使用して遠方にある隣人を探したい。最も重要なのは、ポイント自体(距離ゼロ)も欲しいということです。 cKDTree。クエリーはすべてのネイバーを与えますが、距離はゼロです。Scipy cKDTree最近接のゼロを含む距離
これを行う方法はありますか?
おかげ
Skipy cKDTreeを使用して遠方にある隣人を探したい。最も重要なのは、ポイント自体(距離ゼロ)も欲しいということです。 cKDTree。クエリーはすべてのネイバーを与えますが、距離はゼロです。Scipy cKDTree最近接のゼロを含む距離
これを行う方法はありますか?
おかげ
私は本当にあなたの問題を再現することはできません(またはそれはあなたがツリーを照会するために使用されている方法に依存かもしれません)。返し
>>> idx = tree.query_ball_point((4, 4), 2)
>>> points_ref[idx]
# array([[3, 3], [4, 4], [5, 4]])
:ような何かを与えることができます
>>> from scipy.spatial import cKDTree
>>> import numpy as np
>>> points_ref = np.array([(1, 1), (3, 3), (4, 4), (5, 4), (6, 6)])
>>> tree = cKDTree(points_ref)
方法cKDTree.query_ball_point
でポイント(4, 4)
周り2
の距離で最も近い隣人のために照会:このコードの簡単なスニペットを考慮
距離が0の点。
n-また、0の距離でポイントを返すように思わcKDTree.query
方法と最寄り隣人:
>>> _, idx = tree.query((3, 3), k=2)
>>> points_ref[idx]
# array([[3, 3], [4, 4]])
ありがとう、mgc。私は私の誤りを見つけました。そしてうん、それは働いています。 – RainisCold
あなたはあなたのコードの詳細を与えることができますし、どのようにあなたのツリーを照会していますか?私はあなたの問題を確認するにはわかりません。 'tree = cKDTree(ref_points)'のようなツリーを構築し、それを '_、idx = tree.query(other_points、k = 3)'のようなもので照会すると 'idx'変数は 'other_points '、これらのインデックスされたポイントの1つが照会されたポイントの同じ座標(すなわち、ゼロの距離)を有する場合を含む、'ref_points 'に最も近い3のID。 – mgc
ご返信ありがとうございます。リスト[0,1,2,3,4,5,6,7,8,9]の中で、2の距離内にポイント[5]の隣人を見つけたいと思っています。cKDTreeは私にポイント[3、4、 6,7]。しかし、私は[3、4、5、6、7]が欲しいです。これは私の質問を明確にしますか? – RainisCold