python - index - numpy array size
Python: cortar una matriz multidimensional (1)
Si usa numpy
, esto es fácil:
slice = arr[:2,:2]
o si quieres los 0''s,
slice = arr[0:2,0:2]
Obtendrás el mismo resultado.
* tenga en cuenta que slice
es en realidad el nombre de un tipo incorporado. Generalmente, aconsejaría darle a su objeto un "nombre" diferente.
Otra forma, si está trabajando con listas de listas *:
slice = [arr[i][0:2] for i in range(0,2)]
(Tenga en cuenta que los 0 aquí son innecesarios: [arr[i][:2] for i in range(2)]
también funcionaría.).
Lo que hice aquí es que tomo cada fila deseada 1 a la vez ( arr[i]
). Luego corto las columnas que quiero de esa fila y las agrego a la lista que estoy construyendo.
Si intentas ingenuamente: arr[0:2]
Obtienes las primeras 2 filas, y si luego vuelves a cortar arr[0:2][0:2]
, estás cortando las dos primeras filas otra vez.
* Esto también funciona para matrices numpy, pero será lento en comparación con la solución "nativa" que publiqué anteriormente.
Soy nuevo en Python y numpy. He descubierto cómo cortar 1 dimensión: arr[atart:end]
, y acceder a un elemento en la matriz: el = arr[row][col]
.
Probar algo como slice = arr[0:2][0:2]
(donde arr
es una matriz numpy) no me da las primeras 2 filas y columnas, pero repite las primeras 2 filas. ¿Qué acabo de hacer y cómo puedo cortar otra dimensión?