#python #numpy
#python #numpy
Вопрос:
У меня есть 2D массив. Предположим, что у него есть некоторая связанная область, которая не является прямоугольной. Рассмотрим следующий пример
array([[1, 1, 2, 2],
[0, 1, 0, 1],
[3, 0, 1, 4],
[0, 3, 1, 1]])
В приведенном выше массиве все они связаны. Я знаю все эти координаты, которые хранятся, скажем, в виде 2d массива numpy или списка элементов (x, y).
Теперь я хочу запросить, находится ли произвольная точка в этой области. Точка также может быть плавающей.
В случае координат с плавающей точкой значения будут округлены до ближайшего целого значения пикселя.
Большое спасибо
Комментарии:
1. Итак, у вас есть координата, и вы хотите знать, есть ли она в списке координат? Для тестирования членства я бы использовал вместо этого set .
Ответ №1:
areas = array([[1, 1, 2, 2],
[0, 1, 0, 1],
[3, 0, 1, 4],
[0, 3, 1, 1]])
def is_in_area(x,y, area_num):
return areas[round(x), round(y)] == area_num
Это то, к чему вы стремитесь?
Конечно, вам может потребоваться проверка некоторых границ.
Комментарии:
1. классный чувак, это именно то, что я собирался сделать… Я просто думал по-другому. Решение было настолько простым. Большое вам спасибо.