query_ball_point#
- KDTree.query_ball_point(x, r, p=2.0, eps=0, workers=1, return_sorted=None, return_length=False)[источник]#
Найти все точки в пределах расстояния r от точки(точек) x.
- Параметры:
- xarray_like, кортеж формы + (self.m,)
Точка или точки для поиска соседей.
- rarray_like, float
Радиус точек для возврата, должен транслироваться на длину x.
- pfloat, опционально
Какую норму Минковского p использовать. Должна быть в диапазоне [1, inf]. Конечное большое p может вызвать ValueError, если возможно переполнение.
- epsнеотрицательное число с плавающей точкой, опционально
Приближённый поиск. Ветви дерева не исследуются, если их ближайшие точки дальше, чем
r / (1 + eps), и ветви добавляются группами, если их самые удаленные точки ближе, чемr * (1 + eps).- workersint, необязательный
Количество задач для планирования параллельной обработки. Если задано -1, используются все процессоры. По умолчанию: 1.
Добавлено в версии 1.6.0.
- return_sortedbool, необязательно
Сортирует возвращаемые индексы, если True, и не сортирует их, если False. Если None, не сортирует запросы с одной точкой, но сортирует запросы с несколькими точками, что было поведением до добавления этой опции.
Добавлено в версии 1.6.0.
- return_lengthbool, необязательно
Возвращает количество точек внутри радиуса вместо списка индексов.
Добавлено в версии 1.6.0.
- Возвращает:
- FeatureHasher на частотных словаряхсписок или массив списков
Если x является единственной точкой, возвращает список индексов соседей x. Если x является массивом точек, возвращает объектный массив формы кортежа, содержащий списки соседей.
Примечания
Если у вас много точек, соседей которых вы хотите найти, вы можете значительно сэкономить время, поместив их в KDTree и используя query_ball_tree.
Примеры
>>> 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]
Запросить несколько точек и построить результаты:
>>> 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()