Eliminar elementos del array en NumPy

Vaibhav Vaibhav 10 octubre 2023
  1. Eliminar elementos usando la función numpy.delete()
  2. Eliminar elementos usando la función numpy.setdiff1d()
Eliminar elementos del array en NumPy

En este artículo, aprenderemos sobre dos formas de eliminar elementos de un array NumPy.

Eliminar elementos usando la función numpy.delete()

Consulte el siguiente código.

import numpy as np

myArray = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
indexes = [3, 5, 7]
modifiedArray = np.delete(myArray, indexes)
print(modifiedArray)

Producción :

[ 1  2  3  5  7  9 10]

En el código anterior, usamos la función delete() de la biblioteca NumPy. La función delete() acepta tres parámetros, a saber, arr, obj y axis y genera un array NumPy. El arr es el array NumPy de la que deseamos eliminar elementos. obj es una lista de números enteros. Estos números representan los índices de los elementos que deben eliminarse del array. Por último, el axis es un argumento opcional. axis se refiere al eje a lo largo del cual los elementos seleccionados por el obj deben eliminarse. Si se asigna un valor None a este parámetro, arr se aplana y se lleva a cabo la eliminación en esta matriz aplanada.

Como es habitual, si se proporciona un índice que se encuentra fuera del rango de arr a este método, lanza una excepción IndexError.

import numpy as np

myArray = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
indexes = [3, 5, 7, 34]
modifiedArray = np.delete(myArray, indexes)
print(modifiedArray)

Producción :

Traceback (most recent call last):
  File "<string>", line 5, in <module>
File "<__array_function__ internals>", line 5, in delete
  File "/path/to/library/numpy/lib/function_base.py", line 4480, in delete
keep[obj,] = False
IndexError: index 34 is out of bounds for axis 0 with size 10

Para obtener más información sobre esta función, consulte la documentación oficial de esta función aquí

Aquí hay dos ejemplos más de eliminación en un array NumPy multidimensional.

import numpy as np

myArray = np.array([[1, 2, 3, 4, 5], [11, 12, 13, 14, 15], [21, 22, 23, 24, 25]])
modifiedArray = np.delete(myArray, [1, 2], 1)
print(modifiedArray)

Producción :

[[ 1  4  5]
 [11 14 15]
 [21 24 25]]

Utilice None como valor para el parámetro axis.

import numpy as np

myArray = np.array([[1, 2, 3, 4, 5], [11, 12, 13, 14, 15], [21, 22, 23, 24, 25]])
modifiedArray = np.delete(myArray, [1, 2], None)
print(modifiedArray)

Producción :

[ 1  4  5 11 12 13 14 15 21 22 23 24 25]

Eliminar elementos usando la función numpy.setdiff1d()

Esta vez usaremos la función setdiff1d() de NumPy. Esta función acepta tres parámetros, ar1, ar2 y asume_unique. ar1 y ar2 son dos matrices NumPy. Y asume_unique es un argumento booleano opcional. Su valor predeterminado es False. Cuando es True, se supone que las dos matrices de entrada son únicas, y esta suposición puede acelerar el tiempo de cálculo.

setdiff1d() devuelve los valores únicos en ar1 que no están en ar2.

Consulte el siguiente código.

import numpy as np

myArray = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
indexes = [3, 5, 7]
modifiedArray = np.setdiff1d(myArray, indexes)
print(modifiedArray)

Producción :

[ 1  2  4  6  8  9 10]

A diferencia de numpy.delete(), ambas matrices son matrices NumPy con elementos reales en ellas pero no índices.

Para obtener más información sobre esta función, consulte la documentación oficial de esta función aquí.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.