Agregado Numpy Array Sumando

Tengo una gran variedad de formas(4320,8640). Me gustaría tener una variedad de formas(2160,4320).

Notarás que cada celda de la nueva matriz se asigna a un conjunto de celdas de 2x2 en la matriz anterior. Me gustaría que el valor de una celda en la nueva matriz sea la suma de los valores de este bloque en la matriz anterior.

Puedo lograr esto de la siguiente manera:

import numpy

#Generate an example array
arr = numpy.random.randint(10,size=(4320,8640))

#Perform the transformation
arrtrans = numpy.array([ [ arr[y][x]+arr[y+1][x]+arr[y][x+1]+arr[y+1][x+1] for x in range(0,8640,2)] for y in range(0,4320,2)])

Pero esto es lento y más que un poco feo.

¿Hay alguna manera de hacer esto usando Numpy (o un paquete interoperable)?

Respuestas a la pregunta(3)

Su respuesta a la pregunta