Sto iniziando a imparare Python proveniente da uno sfondo C++. Quello che sto cercando è un modo facile e veloce per trovare il più vicino (il vicino più vicino) di qualche punto di query multidimensionale in una matrice 2D (numerica) di punti multidimensionali (anche array numpy). So che Scipy ha un albero k-d, ma non penso che questo sia ciò che voglio. Prima di tutto, cambierò i valori dei punti multidimensionali nell'array 2D. In secondo luogo, la posizione (coordinate) di ciascun punto nell'array 2D è importante, poiché cambierò anche i loro vicini.Neighbor Search più vicino in Python senza k-d tree
Potrei scrivere una funzione che attraversa l'array 2D e misura la distanza tra il punto di query e i punti nell'array tenendo traccia di quella più piccola (utilizzando una funzione di distanza spaziale scipy per misurare la distanza). C'è una funzione integrata che fa questo? Sto cercando di evitare il più possibile l'iterazione su array in python. Avrò anche numerosi punti di interrogazione, quindi ci saranno almeno due "per loops": uno per scorrere i punti di query e per ogni query, un ciclo per scorrere l'array 2D e trovare la distanza minima.
Grazie per qualsiasi consiglio.
Mi piace il primo suggerimento, ma sto facendo una query alla volta e aggiornando i valori nella matrice (simile a SOM). Potrei usare cdist (X, Y) dove X è solo una query e aggiornare la matrice e passare alla query successiva. Rtree sembra che potrebbe essere OK, ma sono un po 'incerto su come usarlo nella mia situazione. Mi chiedo se ci sono pacchetti di grafici che consentirebbero una ricerca di un vicino più vicino con un punto esterno? Potrei usare un pacchetto grafico per creare un reticolo in cui ogni nodo è un punto multidimensionale. Alcune delle altre funzionalità di un pacchetto grafico sarebbero utili nel mio programma – COM