python numpy

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



(1)

digamos que tengo una secuencia s me gustaría seleccionar n subsecuencias aleatorias de cada una de ellas con longitud l y almacenar en una matriz. ¿Hay alguna forma más complicada de hacerlo 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 basado en scikit-image''s view_as_windows para una extracción eficiente de parches, así:

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: recorta 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