Таким образом, в двоичном массиве я пытаюсь найти точки, где 0 и 1 находятся рядом друг с другом, и перерисовать массив с этими точками пересечения, указанными путем изменения значения 0. Просто интересно, есть ли лучший способ сравнить каждое из значений в массиве numpy с 8 окружающими значениями, чем использование вложенных циклов for.
В настоящее время у меня есть это, которое сравнивается с 4 окружением только для удобства чтения здесь
for x in range(1, rows - 1):
for y in range(1, columns - 1):
if f2[x, y] == 0:
if f2[x-1, y] == 1 or f2[x+1, y] == 1 or f2[x, y-1] == 1 or f2[x, y+1] == 1:
f2[x, y] = 2
EDIT
Например
[[1, 1, 1, 1, 1, 1, 1],
[1, 1, 0, 0, 0, 1, 1],
[1, 1, 0, 0, 0, 1, 1],
[1, 1, 0, 0, 0, 1, 1],
[1, 1, 1, 1, 1, 1, 1]]
до
[[1, 1, 1, 1, 1, 1, 1],
[1, 1, 2, 2, 2, 1, 1],
[1, 1, 2, 0, 2, 1, 1],
[1, 1, 2, 2, 2, 1, 1],
[1, 1, 1, 1, 1, 1, 1]]