query_ball_point#
- cKDTree.query_ball_point(self, x, r, p=2., eps=0, workers=1, return_sorted=None, return_length=False)#
Finde alle Punkte innerhalb der Distanz r von Punkt(en) x.
- Parameter:
- xarray_like, shape tuple + (self.m,)
Der Punkt oder die Punkte, für die Nachbarn gesucht werden sollen.
- rarray_like, float
Der Radius der zurückzugebenden Punkte, soll auf die Länge von x gebroadcastet werden.
- pfloat, optional
Welche Minkowski-p-Norm verwendet werden soll. Sollte im Bereich [1, inf] liegen. Ein endlich großes p kann einen ValueError verursachen, wenn ein Überlauf auftreten kann.
- epsnicht-negativer float, optional
Ungefähre Suche. Äste des Baumes werden nicht erkundet, wenn ihre nächstgelegenen Punkte weiter entfernt sind als
r / (1 + eps), und Äste werden gesammelt hinzugefügt, wenn ihre entferntesten Punkte näher sind alsr * (1 + eps).- workersint, optional
Anzahl der Jobs, die für die parallele Verarbeitung geplant werden sollen. Wenn -1 angegeben wird, werden alle Prozessoren verwendet. Standard: 1.
Geändert in Version 1.9.0: Das Argument „n_jobs“ wurde in „workers“ umbenannt. Der alte Name „n_jobs“ wurde in SciPy 1.6.0 als veraltet markiert und in SciPy 1.9.0 entfernt.
- return_sortedbool, optional
Sortiert die zurückgegebenen Indizes, wenn True, und sortiert sie nicht, wenn False. Wenn None, werden die Indizes von Einzelpunktabfragen nicht sortiert, aber die von Mehrpunktabfragen schon, was das Verhalten vor der Einführung dieser Option war.
Hinzugefügt in Version 1.2.0.
- return_length: bool, optional
Gibt die Anzahl der Punkte innerhalb des Radius zurück, anstatt einer Liste der Indizes. .. versionadded:: 1.3.0
- Rückgabe:
- resultsliste oder Array von Listen
Wenn x ein einzelner Punkt ist, gibt dies eine Liste der Indizes der Nachbarn von x zurück. Wenn x ein Array von Punkten ist, gibt dies ein Objekt-Array der Form tuple zurück, das Listen von Nachbarn enthält.
Hinweise
Wenn Sie viele Punkte haben, deren Nachbarn Sie finden möchten, können Sie viel Zeit sparen, indem Sie sie in einem cKDTree speichern und query_ball_tree verwenden.
Beispiele
>>> import numpy as np >>> from scipy import spatial >>> x, y = np.mgrid[0:4, 0:4] >>> points = np.c_[x.ravel(), y.ravel()] >>> tree = spatial.cKDTree(points) >>> tree.query_ball_point([2, 0], 1) [4, 8, 9, 12]
Mehrere Punkte abfragen und Ergebnisse plotten
>>> import matplotlib.pyplot as plt >>> points = np.asarray(points) >>> plt.plot(points[:,0], points[:,1], '.') >>> for results in tree.query_ball_point(([2, 0], [3, 3]), 1): ... nearby_points = points[results] ... plt.plot(nearby_points[:,0], nearby_points[:,1], 'o') >>> plt.margins(0.1, 0.1) >>> plt.show()