2017-01-05 14 views
0

私はkdtreeから2次元座標のリストを作成しています。座標はタイプdoubleです。 [508180.748, 195333.973]KDTree double型の整数

私はnumpyを使って作成し、配列を作成し、scipyのKDTree関数を使用します。

import numpy as np 
import scipy.spatial 

points_array = np.array(points) 
kdt = scipy.spatial.KDTree(points_array) 

# Query  
tester = kdt.query_pairs(20) 
tester = list(tester)  
print(tester[0]) 

これは戻します

(109139, 109144)

結果は、元データの解像度を失いました。どのように倍精度浮動小数点形式を保持するのですか?

答えて

2

これらはポイントの配列内のインデックスであり、ポイント自体の座標値ではありません。タプルには2つのインデックスがあります.1つは配列の各ポイントに対応し、座標空間内の分離がクエリ距離よりも小さいペアの一部です。

tester = kdt.query_pairs(20) 
tester = list(tester)  
print(points_array[tester[0][0]], points_array[tester[0][1]]) 
+0

ありがとう:

には、以下のあなたが行うことができ、あなたのペアに点の座標の値を表示するには!私はこれを試して、それを返す '(array([527948.、169578.])、array([527959.、169593。]))' 'それは' .'を過ぎて何かを落としているのですか? – LearningSlowly

+0

このコードを使用すると完全精度が得られるので、なぜこの動作が見られるのか分かりません。私の推測では、 '.'の後ろに値がなかったか、あるいは' dtype'と何か関係があります。トラブルシューティングを支援するために、トレースバックを投稿する必要があります。 – kiliantics

関連する問題