Indexing y slicing en Python

Autor: | Última modificación: 16 de enero de 2023 | Tiempo de Lectura: 3 minutos
Temas en este post: ,

El indexing y slicing son funciones que podemos utilizar en Python y que nos ayudarán a entender un poco mejor los arrays y que nos permitirán realizar muchas más operaciones con estos.

En este artículo, veamos en qué consisten el indexing y slicing y cómo funcionan.

Indexing y slicing

Indexing

El indexing en arrays funciona exactamente igual que los índex de las listas en Python. Así pues, si tenemos un array de esta forma:

#Indexing y slicing
x1 = np.array ([5, 4, 1, 2, 3])
x1

array ([5, 4, 1, 2, 3])

Obtendríamos esto.

Cabe recordar que los elementos empiezan en índex = 0, no en índedx = 1.

Podemos extraer el primer elemento de nuestro array con un simple comando:

x1 [0]

5

Podemos acceder al último elemento de nuestro array y extraerlo usando -1:

#Indexing y slicing
x1 [-1]

3

O incluso acceder a elementos desde el final del array usando:

#Indexing y slicing
x1 [1 : 3]

array ([4, 1])

Aquí lo que hemos hecho ha sido acceder del elemento 1 al elemento 3, en este caso serían 4 y 1. Veamos:

  • Elemento 0: 5
  • Elemento 1: 4
  • Elemento 2: 1
  • Elemento 3: 2
  • Elemento 4: 3

No se ha incluido el 2 en esta lista porque el índice es igual al índice menos 1 (index = index – 1).

En caso de arrays con más dimensiones, funciona exactamente igual. Lo único diferente es que debemos tener en cuenta que estamos trabajando con más dimensiones a la hora de imprimir los arrays:

#Indexing y slicing
x2 = np.array ([[1,  2,  3],   [4,  5,  6]])
x2 (0, 0)

1

En este caso nos imprime el componente (0, 0), que sería el 1 del array en la primera dimensión.

Si ponemos x2 y solo introducimos un componente, nos sale en pantalla toda la primera fila o dimensión del array:

#Indexing y slicing
x2 [0]

array ([1, 2, 3])

También podemos hacerlo, por ejemplo, con el último valor de la dimensión 1 y el último elemento de la dimensión 2:

#Indexing y slicing
x2 = [-1, -1]

6

Slicing

Podemos extraer subconjuntos pertenecientes a un array usando:

x [start : stop : step]

Si no definimos alguno de ellos, los valores por defecto son: start = 0, stop = size of dimension, step = 1.

Ya hemos visto que podíamos generar una secuencia de números usando numpy.arrange junto al número de elementos que queremos que genere:

#Indexing y slicing
x = np.arange (10)
x

array ([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

Aquí podríamos extraer, exactamente del mismo modo, hasta el elemento 5:

#Indexing y slicing
x [: 5]

array ([0, 1, 2, 3, 4])

Incluso podríamos extraer cada dos elementos de nuestro array:

#Indexing y slicing
x [: : 2]

array ([2, 4, 6, 8])

También podríamos invertir nuestro array de una manera muy simple:

#Indexing y slicing
x [: : -1]

array ([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])

Aquí lo que estamos haciendo es coger todos los elementos, pero empezando desde el último elemento del array.

Para arrays con más de una dimensión es exactamente igual:

#Indexing y slicing
z = np.array ([[1,  2,  3],   [4,  5,  6]])

z [: , 0]

array ([1, 4])

En este caso, lo que hemos hecho ha sido mostrar el primer componente de la primera dimensión y el primer componente de la segunda dimensión.

Podríamos hacerlo al contrario, donde tendríamos algo así:

#Indexing y slicing
z [0, ::2]

array ([1, 3])

Esto lo que hace es coger la primera dimensión, es decir, el [1, 2, 3], y devolvería cada dos valores, que, en este caso, serían el 1 y el 3.

Incluso podríamos coger la segunda dimensión, es decir, el [4, 5, 6], y darle la vuelta:

#Indexing y slicing
z [1, : : -1]

array ([6, 5, 4])

Podemos también modificar los elementos de los arrays, que funciona igual en las listas:

#Indexing y slicing
z [0, 0] = 100
z

array ([[100, 2, 3],

[4, 5, 6]])

En este ejemplo, cambiamos el primer elemento de la primera dimensión.

¿Quieres seguir aprendiendo?

Ya sabes cómo funcionan el indexing y slicing en Python, por lo que ha llegado el momento de seguir aprendiendo sobre Big Data, una de las disciplinas más demandadas y mejor pagadas. Para ello tenemos el Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp, una formación intensiva en la que podrás aprender a nivel teórico y práctico para incursionar en el mercado laboral en pocos meses. ¡Atrévete a impulsar tu futuro y pide más información ahora!

👉 Descubre más del Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp ¡Descarga el temario!

👉 Prueba el Bootcamp Gratis por una Semana ¡Empieza ahora mismo!

👉 Conoce nuestros otros Bootcamps en Programación y Tecnología

[email protected]

¿Trabajo? Aprende a programar y consíguelo.

¡No te pierdas la próxima edición del Aprende a Programar desde Cero Full Stack Jr. Bootcamp!

 

Prepárate en 4 meses, aprende las últimas tecnologías y consigue trabajo desde ya. 

 

Solo en España hay más de 120.400 puestos tech sin cubrir, y con un sueldo 11.000€ por encima de la media nacional. ¡Es tu momento!

 

🗓️ Próxima edición: 13 de febrero

 

Reserva tu plaza descubre las becas disponibles.