У меня очень большой набор данных, состоящий из (x, y) координат. Мне нужно знать, какая из этих точек находится в определенных областях 2D-пространства. Эти области ограничены 4 линиями в 2D-области (некоторые стороны слегка изогнуты).Поиск точек в 2D-области
Для меньших наборов данных я использовал громоздкий цикл для проверки каждой отдельной точки для членства в каждом регионе. Это больше не похоже на хороший вариант из-за размера набора данных.
Есть ли лучший способ сделать это?
Например:
Если у меня есть множество точек: (0,1) (1,2) (3,7) (1,4) (7,5)
и область, ограниченная линиями:
y=2
y=5
y=5*sqrt(x) +1
x=2
Я хочу, чтобы найти способ, чтобы определить точку (или точки) в этом регионе.
Спасибо.
Точный код находится на другом компьютере, но из памяти это было что-то вроде:
point_list = []
for i in range(num_po):
a=5*sqrt(points[i,0]) +1
b=2
c=2
d=5
if (points[i,1]<a) && (points[i,0]<b) && (points[i,1]>c) && (points[i,1]<d):
point_list.append(points[i])
Это не точный код, но должен дать представление о том, что я пытался.
Сколько очков и сколько регионов (ака многоугольников)? – RickyA
и можем ли мы иметь код, который вы используете сейчас, чтобы проверить их? – RickyA
Число точек составляет около 1 миллиона, а количество полигонов изменчиво, но в настоящее время я смотрю 15. Я не уверен, что его соответствующие, но полигоны не перекрываются, но могут касаться границы. – Bensciens