big_array = np.array((
[0,1,0,0,1,0,0,1],
[0,1,0,0,0,0,0,0],
[0,1,0,0,1,0,0,0],
[0,0,0,0,1,0,0,0],
[1,0,0,0,1,0,0,0]))
print(big_array)
[[0 1 0 0 1 0 0 1]
[0 1 0 0 0 0 0 0]
[0 1 0 0 1 0 0 0]
[0 0 0 0 1 0 0 0]
[1 0 0 0 1 0 0 0]]
Есть ли способ выполнить итерацию по этому массиву и для каждого кластера 2x2 из 0 установить все значения в этом кластере = 5?Вот как будет выглядеть вывод.
[[0 1 5 5 1 5 5 1]
[0 1 5 5 0 5 5 0]
[0 1 5 5 1 5 5 0]
[0 0 5 5 1 5 5 0]
[1 0 5 5 1 5 5 0]]
Мои мысли состоят в том, чтобы использовать расширенное индексирование, чтобы задать для формы 2x2 = 5, но я думаю, что будет очень медленно просто выполнять итерации, например: 1) проверить, является ли массив [x] [y]0 2) проверьте, равны ли соседние элементы массива 0 3) если все элементы равны 0, установите все эти значения на 5.