numpy: reunindo várias fatias no novo array

Eu tenho uma matriz 2-dimensional, dos quais eu preciso extrair seções (fatias) em uma nova matriz:

original= numpy.ndarray( shape=(4,4) )
slices= numpy.ndarray( shape=(0,2) )
for x in range(3):
    slice= original[x:x+2,x:x+2] 
    slices=numpy.append(slices, slice,axis=0)

Existe uma maneira mais eficiente de fazer isso (se livrar do python para o ciclo)?

----EDITAR----

Para esclarecer, estou perguntando como copiar de forma arbitrária (mas similarmente) fatias 2D de índices 2D arbitrários de um array 2D para outro, verticalmente empilhados - não particularmente ao longo da diagonal, ou do tamanho 2x2.

questionAnswers(2)

yourAnswerToTheQuestion