Если вы хотите решение, которое также обрабатывает случаи, когда матрица не разделена поровну, вы можете использовать это:
from operator import add
half_split = np.array_split(input, 2)
res = map(lambda x: np.array_split(x, 2, axis=1), half_split)
res = reduce(add, res)