Indexing y slicing en Python

| Última modificación: 15 de julio de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

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.

¿Qué encontrarás en este post?

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.

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!

Sandra Navarro

Business Intelligence & Big Data Advisor & Coordinadora del Bootcamp en Data Science, Big Data & Machine Learning.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado