Это идеальная задача для двумерной свертки:
data = numpy.array([
[1, 0, 0, 0, 1],
[1, 1, 1, 0, 0],
[1, 0, 0, 0, 0],
[0, 0, 0, 1, 1],
[0, 1, 0, 0, 0],
])
kernel = numpy.ones((3, 3), dtype=data.dtype)
# array([[1, 1, 1],
# [1, 1, 1],
# [1, 1, 1]])
scipy.signal.convolve2d(data, kernel, mode='same')
# array([[3, 4, 2, 2, 1],
# [4, 5, 2, 2, 1],
# [3, 4, 3, 3, 2],
# [2, 2, 2, 2, 2],
# [1, 1, 2, 2, 2]])