scipy.spatial.KDTree.

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()
../../_images/scipy-spatial-KDTree-query_ball_point-1.png