query_ball_point#
- KDTree.query_ball_point(x, r, p=2.0, eps=0, workers=1, return_sorted=None, return_length=False)[Quelle]#
Finde alle Punkte innerhalb der Distanz r von Punkt(en) x.
- Parameter:
- xarray_like, Form tuple + (self.m,)
Der Punkt oder die Punkte, nach deren Nachbarn gesucht werden soll.
- rarray_like, float
Der Radius der zurückzugebenden Punkte, muss auf die Länge von x broadcasten.
- pfloat, optional
Welche Minkowski-p-Norm verwendet werden soll. Sollte im Bereich [1, inf] liegen. Ein endliches großes p kann einen ValueError verursachen, wenn ein Überlauf auftreten kann.
- epsnicht-negativer float, optional
Ungefähre Suche. Zweige des Baums werden nicht erkundet, wenn ihre nächsten Punkte weiter entfernt sind als
r / (1 + eps), und Zweige werden in großen Mengen hinzugefügt, wenn ihre entferntesten Punkte näher sind alsr * (1 + eps).- workersint, optional
Anzahl der für die parallele Verarbeitung zu planenden Jobs. Wenn -1 angegeben wird, werden alle Prozessoren verwendet. Standard: 1.
Hinzugefügt in Version 1.6.0.
- return_sortedbool, optional
Sortiert zurückgegebene Indizes, wenn True, und sortiert sie nicht, wenn False. Wenn None, werden einzelne Punktabfragen nicht sortiert, aber Mehrpunktabfragen werden sortiert, was das Verhalten vor der Hinzufügung dieser Option war.
Hinzugefügt in Version 1.6.0.
- return_lengthbool, optional
Gibt die Anzahl der Punkte innerhalb des Radius zurück, anstatt eine Liste der Indizes.
Hinzugefügt in Version 1.6.0.
- Rückgabe:
- resultslist oder array von Listen
Wenn x ein einzelner Punkt ist, gibt eine Liste der Indizes der Nachbarn von x zurück. Wenn x ein Array von Punkten ist, gibt ein Objektarray der Form tuple mit Listen von Nachbarn zurück.
Hinweise
Wenn Sie viele Punkte haben, deren Nachbarn Sie finden möchten, können Sie viel Zeit sparen, indem Sie diese in einen KDTree einfügen und query_ball_tree verwenden.
Beispiele
>>> import numpy as np >>> from scipy import spatial >>> x, y = np.mgrid[0:5, 0:5] >>> points = np.c_[x.ravel(), y.ravel()] >>> tree = spatial.KDTree(points) >>> sorted(tree.query_ball_point([2, 0], 1)) [5, 10, 11, 15]
Mehrere Punkte abfragen und die 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()