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.