Eliminar elemento de una matriz/lista en Python

En este tutorial, mostraremos ejemplos de cómo eliminar un elemento de una matriz en Python usando remove(), pop(), la palabra clave del y Numpy.

Introducción

Este tutorial analizará algunas formas comunes de eliminar elementos de matrices/listas de Python.

¿Matrices o listas?

La representación de secuencia integrada de Python es una lista, definida como una secuencia heterogénea de elementos, donde cada elemento tiene un índice definitivo en la secuencia. Para usar arreglos, tendría que importar el módulo array, que se envía con Python, pero las listas se usan mucho más comúnmente.

Además, dado que la sintaxis de la lista se parece mucho a la sintaxis que usaría para definir arreglos en otros lenguajes de programación, los términos "arreglo" y "lista" a menudo se usan indistintamente, aunque no lo son. la misma estructura de datos. ¡Vale la pena señalar que muchos de estos métodos funcionan tanto para una matriz como para una lista!

Usar eliminar()

Apropiadamente, la función remove() se puede usar en cualquier matriz o lista en Python. Para usarlo, simplemente podemos pasar el valor del elemento que queremos eliminar. Imaginemos que tenemos la siguiente matriz:

1
array = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

Para eliminar, digamos, el elemento 40, simplemente escribiríamos:

1
array.remove(40)

El resultado es la misma matriz sin el valor 40:

1
[10, 20, 30, 50, 60, 70, 80, 90, 100]

Usar pop()

La función pop() acepta el índice del elemento que queremos eliminar. Si tuviéramos la misma matriz/lista que antes (con valores de 10 a 100), podríamos escribir algo como lo siguiente:

1
2
index = 3
array.pop(index)

Si imprimiéramos el resultado del método pop, sería el valor 40:

1
[10, 20, 30, 50, 60, 70, 80, 90, 100]

De manera similar a cómo funciona pop() en la estructura de datos de la pila, aquí pop() también devuelve el valor que acaba de eliminar.

La única diferencia es que con las matrices, podemos eliminar un elemento arbitrario. Con las pilas, solo se puede eliminar el elemento superior (es decir, el último agregado).

Usando del

del es una palabra clave de Python utilizada para eliminar objetos. Su comportamiento exacto cambia según el contexto, por lo que también podemos usarlo para eliminar elementos de la lista, aunque las matrices no lo admiten. Una vez más, tomemos la misma matriz e índice que antes:

1
2
array = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
index = 3

Para eliminar el elemento en el índice 3, simplemente escribimos lo siguiente:

1
del array[index]

Si imprimiéramos ahora el contenido de nuestra matriz, obtendríamos el siguiente resultado:

1
[10, 20, 30, 50, 60, 70, 80, 90, 100]

Uso de matrices numpy

Las matrices NumPy se usan comúnmente (especialmente en el aprendizaje automático), así que mostremos una de las formas de eliminar un elemento de una matriz numpy. Antes de usar numpy, es necesario importarlo con:

1
import numpy as np

Para crear una matriz numpy, podemos envolver nuestra lista actual usando np.array() como tal:

1
a = np.array(array)

Alternativamente, también podríamos declarar una nueva matriz dentro de la misma llamada al método:

1
a = np.array([10, 20, 30, 40, 50, 60, 70, 80, 90, 100])

Ahora, para eliminar un elemento en el índice 3, usamos el siguiente código:

1
2
index = 3
a = np.delete(a, index)

delete() es un método estático declarado en el módulo numpy. Acepta la matriz y el índice del elemento a eliminar.

El método devuelve una nueva matriz sin el elemento eliminado:

1
[10, 20, 30, 50, 60, 70, 80, 90, 100]

Conclusión

Hay diferentes formas de eliminar un elemento de lista en Python. A veces, es posible que queramos eliminar un elemento por índice y, a veces, por valor. A veces usamos la matriz predeterminada de Python y, a veces, una matriz numpy.

En todos estos casos, es bueno tener múltiples opciones que nos ayuden a decidir cuál de las técnicas usar.