У меня есть двумерный массив numpy. Рассмотрим следующий пример
[[0,6,89,255,1,6,7]
[0,255,89,255,1,1,7]
[255,255,255,255,255,255,255]
[1,2,3,4,5,6,7]
[1,1,255,5,7,3,255]]
Нам нужны координаты прямоугольника вокруг определенного значения. Например, для значения 255 координаты поля вокруг значения 255 будут в верхнем левом углу (0,0) и в правом нижнем углу (4,6).
Как сделать это эффективно в python.
Большое спасибо.
Ответ очень похож на: есть ли функция "ограничивающей рамки" (срез с ненулевыми значениями) для ndarray в NumPy?
from numpy import array, argwhere
A = array([[0 ,6 ,89 ,255,1 ,6 ,7 ],
[0 ,255,89 ,255,1 ,1 ,7 ],
[255,255,255,255,255,255,255],
[1 ,2 ,3 ,4 ,5 ,6 ,7 ],
[1 ,1 ,255,5 ,7 ,3 ,255]])
B = argwhere(A==255)
(ystart, xstart), (ystop, xstop) = B.min(0), B.max(0)