query#
- KDTree.query(x, k=1, eps=0, p=2, distance_upper_bound=inf, workers=1)[Quelle]#
Fragt den KD-Baum nach den nächsten Nachbarn ab.
- Parameter:
- xarray_like, letzte Dimension self.m
Ein Array von Punkten, die abgefragt werden sollen.
- kint oder Sequence[int], optional
Entweder die Anzahl der zurückzugebenden nächsten Nachbarn oder eine Liste der zurückzugebenden k-ten nächsten Nachbarn, beginnend bei 1.
- epsnicht-negativer float, optional
Gibt ungefähre nächste Nachbarn zurück; der k-te zurückgegebene Wert ist garantiert nicht weiter entfernt als (1+eps) Mal die Entfernung zum echten k-ten nächsten Nachbarn.
- pfloat, 1<=p<=infinity, optional
Welche Minkowski-p-Norm verwendet werden soll. 1 ist die Summe der Absolutwerte der Abstände („Manhattan“-Abstand). 2 ist der übliche Euklidische Abstand. Unendlich ist der maximale Koordinatenunterschiedsabstand. Ein großer, endlicher p kann einen ValueError verursachen, wenn es zu einem Überlauf kommen kann.
- distance_upper_boundnicht-negativer float, optional
Gibt nur Nachbarn innerhalb dieses Abstands zurück. Dies wird verwendet, um Baumsuchen abzuschneiden. Wenn Sie eine Reihe von Abfrage der nächsten Nachbarn durchführen, kann es hilfreich sein, den Abstand zum nächsten Nachbarn des zuletzt abgefragten Punktes anzugeben.
- workersint, optional
Anzahl der Worker, die für parallele Verarbeitung verwendet werden sollen. Wenn -1 angegeben wird, werden alle CPU-Threads verwendet. Standard: 1.
Hinzugefügt in Version 1.6.0.
- Rückgabe:
- dfloat oder Array von Floats
Die Entfernungen zu den nächsten Nachbarn. Wenn
xdie Formtuple+(self.m,)hat, dann hatddie Formtuple+(k,). Wenn k == 1, wird die letzte Dimension der Ausgabe gequetscht. Fehlende Nachbarn werden mit unendlichen Abständen angegeben. Treffer werden nach Entfernung sortiert (nächster zuerst).Geändert in Version 1.9.0: Zuvor, wenn
k=Nonewar, dann war d ein Objekt-Array der Formtuple, das Listen von Entfernungen enthielt. Dieses Verhalten wurde entfernt, verwenden Sie stattdessenquery_ball_point.- iInteger oder Array von Integers
Der Index jedes Nachbarn in
self.data.ihat die gleiche Form wie d. Fehlende Nachbarn werden mitself.nangegeben.
Beispiele
>>> import numpy as np >>> from scipy.spatial import KDTree >>> x, y = np.mgrid[0:5, 2:8] >>> tree = KDTree(np.c_[x.ravel(), y.ravel()])
Um die nächsten Nachbarn abzufragen und ein gequetschtes Ergebnis zu erhalten, verwenden Sie
>>> dd, ii = tree.query([[0, 0], [2.2, 2.9]], k=1) >>> print(dd, ii, sep='\n') [2. 0.2236068] [ 0 13]
Um die nächsten Nachbarn abzufragen und ein nicht gequetschtes Ergebnis zu erhalten, verwenden Sie
>>> dd, ii = tree.query([[0, 0], [2.2, 2.9]], k=[1]) >>> print(dd, ii, sep='\n') [[2. ] [0.2236068]] [[ 0] [13]]
Um die zweitnächsten Nachbarn abzufragen und ein nicht gequetschtes Ergebnis zu erhalten, verwenden Sie
>>> dd, ii = tree.query([[0, 0], [2.2, 2.9]], k=[2]) >>> print(dd, ii, sep='\n') [[2.23606798] [0.80622577]] [[ 6] [19]]
Um den ersten und zweiten nächsten Nachbarn abzufragen, verwenden Sie
>>> dd, ii = tree.query([[0, 0], [2.2, 2.9]], k=2) >>> print(dd, ii, sep='\n') [[2. 2.23606798] [0.2236068 0.80622577]] [[ 0 6] [13 19]]
oder, spezifischer
>>> dd, ii = tree.query([[0, 0], [2.2, 2.9]], k=[1, 2]) >>> print(dd, ii, sep='\n') [[2. 2.23606798] [0.2236068 0.80622577]] [[ 0 6] [13 19]]