Wenn Sie sagen, eine Liste von 10 Vektoren, genannt A, die verschiedene Gruppen darstellen. Dann haben Sie eine Zeitreihe von Vektoren v1, v2, ..., vn, von denen jeder auch ein Vektor ist. Ich habe mich gefragt, ob es eine Möglichkeit gibt, den "nächsten" Vektor in A für jedes v1, v2, ..., vn zu finden, wenn Sie eine Abstandsmetrik definieren?
Gibt es einen schnellen Weg, um das Ganze zu durchlaufen und alle Einträge zu vergleichen?
Edit: Nein, ich frage nicht, wie man k-means oder so etwas macht.
Sie können den räumlichen KDtree in scipy . Es verwendet einen schnellen Baumalgorithmus, um nahe Punkte für Vektoren beliebiger Dimension zu identifizieren.
Bearbeiten : Entschuldigung, wenn Sie nach beliebigen Distanzmetriken suchen, ein Baum wie Struktur könnte immer noch eine Option sein.
Hier ist ein Beispiel:
%Vor%Dadurch wird der KDTree mit allen Punkten in A eingerichtet, sodass Sie schnelle räumliche Suchvorgänge in ihm durchführen können. Eine solche Abfrage nimmt einen Vektor und gibt den nächsten Nachbarn in A dafür zurück:
%Vor%Der erste Rückgabewert ist der Abstand des nächsten Nachbarn und der zweite seine Position in A, so dass Sie ihn beispielsweise so erhalten können:
%Vor%