Suche nach nächstem Nachbarn: Python

Ich habe ein zweidimensionales Array:

MyArray = array([6588252.24, 1933573.3, 212.79, 0, 0],
                [6588253.79, 1933602.89, 212.66, 0, 0],
                 etc...)

Die ersten beiden ElementeMyArray[0] undMyArray[1] sind dieX undY Koordinaten der Punkte.

Für jedes Element im Array würde ich gerne findendas schnellste Rückgabe des nächsten Nachbarn im Umkreis vonX Einheiten. Wir gehen davon aus, dass dies im 2D-Raum ist.

Lassen Sie uns für dieses Beispiel sagenX = 6.

Ich habe das Problem gelöst, indem ich jedes Element mit jedem anderen Element verglichen habe. Dies dauert jedoch ungefähr 15 Minuten, wenn Ihre Liste 22.000 Punkte lang ist. Wir hoffen, dies irgendwann auf Listen mit etwa 30 Millionen Punkten ausführen zu können.

Ich habe über K-d-Bäume gelesen und verstehe das Grundkonzept, habe aber Probleme damit, sie zu skripten.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage