10 - Indexación y slicing de arreglos
Lección 10 del curso NumPy para Ciencia de Datos y Machine Learning.
Tabla de contenido
Introducción
Además de los operadores, métodos y funciones universales vistos anteriormente, un elemento básico en la manipulación de arreglos de NumPy es la posibilidad de operar sobre elementos específicos o porciones del arreglo.
Así que en esta lección hablaremos de la indexación y del slicing que permiten realizar este tipo de manipulación sobre los arreglos de NumPy.
Suscríbete y accede al código fuente y al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online
Indexación y slicing de arreglos 1D
En este caso aplicamos exactamente las mismas reglas de indexación y slicing usadas en las listas convencionales de Python vistas en un curso anterior.
En particular:
- Podemos indexar el primer elemento del arreglo con el índice 0 y el último con el índice -1
- Podemos acceder a una porción del arreglo (slicing) con la sintaxis
[inicio:fin+1]
- O podemos hacer el slicing agregando un “tamaño de paso”, por ejemplo usando la sintaxis
[::2]
Indexación y slicing de arreglos multidimensionales
- Para acceder a un elemento del arreglo usamos la sintaxis
[dim1, dim2, dim3, ...]
- Para acceder a una fila completa usamos la sintaxis
[fila]
- Para acceder a una columna completa usamos la sintaxis
[:,columna]
- Y para acceder a una porción tanto de las filas como de las columnas usamos la sintaxis
[fil_inicio:fil_fin+1, col_inicio:col_fin+1]
Y para la indexación y slicing de arreglos de 3 o más dimensiones podemos seguir exactamente la misma sintaxis que acabamos de ver.
Recuerda suscribirte para acceder al código fuente y al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online
Conclusión
Muy bien, ya tenemos claras las reglas básicas de indexación y slicing de arreglos en Numpy.
Pero en ocasiones cuando hacemos por ejemplo slicing de un arreglo para generar un arreglo resultante, debemos ser cuidadosos con los cambios que hagamos sobre dicho arreglo resultante, pues éstos pueden terminar afectando al arreglo original.
Esto quiere decir que el arreglo resultante está de alguna forma “conectado” al arreglo original, lo que puede llevar a que nuestro código se comporte de manera inesperada generando errores muchas veces difíciles de detectar.
Y es acá donde resultan importantes los conceptos de copias “shallow” y “deep” que resultan fundamentales cuando estamos haciendo indexación o slicing de arreglos en NumPy. En la próxima lección veremos entonces en detalle estos dos conceptos.