¿Cómo puedo extraer múltiples subsecuencias aleatorias de una matriz numpy?

digamos que tengo una secuencia s y me gustaría seleccionar n subsecuencias aleatorias de cada una con longitud l y almacenarlas en una matriz. ¿Hay una manera más numerosa de hacer eso que

 s = np.arange(0, 1000) n = 5 l = 10 i = np.random.randint(0, len(s)-10, 5) ss = np.array([s[x:x+l] for x in i]) 

Podemos aprovechar np.lib.stride_tricks.as_strided scikit-image's view_as_windows para una extracción de parches eficiente, como por ejemplo:

 from skimage.util.shape import view_as_windows # Get sliding windows (these are simply views) w = view_as_windows(s, l) # Index with indices, i for desired output out = w[i] 

Relacionado :

NumPy Fancy Indexing – Recorte diferentes ROI de diferentes canales

Tome N primeros valores de cada fila en la matriz NumPy que cumplan la condición

Selección de ventanas aleatorias de filas de matrices numpy multidimensionales