ventana deslizante en numpy

Tengo una gran variedad de formas (6,2)

[[00,01],
 [10,11],
 [20,21],
 [30,31],
 [40,41],
 [50,51]]

Necesito una ventana deslizante con tamaño de paso 1 y tamaño de ventana 3 como esto:

[[00,01,10,11,20,21],
 [10,11,20,21,30,31],
 [20,21,30,31,40,41],
 [30,31,40,41,50,51]]

Estoy buscando una solución numpy. Si su solución pudiera parametrizar la forma de la matriz original, así como el tamaño de la ventana y el paso, sería genial.

Encontré esta respuesta relacionadaUso de zancadas para un filtro de media móvil eficiente pero no veo cómo especificar el tamaño de los pasos allí y cómo colapsar la ventana de la matriz 3d a una matriz 2d continua. También estoIterador de ventana enrollable o deslizante en Python pero eso está en Python y no estoy seguro de cuán eficiente sea eso. Además, admite elementos pero no los une al final si cada elemento tiene varias características.

Respuestas a la pregunta(4)

Su respuesta a la pregunta