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