Supprimer des éléments du tableau dans NumPy

Vaibhav Vaibhav 10 octobre 2023
  1. Supprimer des éléments à l’aide de la fonction numpy.delete()
  2. Supprimer des éléments à l’aide de la fonction numpy.setdiff1d()
Supprimer des éléments du tableau dans NumPy

Dans cet article, nous allons découvrir deux façons de supprimer des éléments d’un tableau NumPy.

Supprimer des éléments à l’aide de la fonction numpy.delete()

Reportez-vous au code suivant.

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)

Production:

[ 1  2  3  5  7  9 10]

Dans le code ci-dessus, nous utilisons la fonction delete() de la bibliothèque NumPy. La fonction delete() accepte trois paramètres, à savoir arr, obj et axis et génère un tableau NumPy. Le arr est le tableau NumPy dont on souhaite supprimer des éléments. obj est une liste de nombres entiers. Ces nombres représentent les index des éléments qui doivent être supprimés du tableau. Enfin, le axis est un argument optionnel. axis fait référence à l’axe selon lequel les éléments ciblés par obj doivent être supprimés. Si une valeur None est affectée à ce paramètre, arr est aplati, et la suppression est effectuée sur ce tableau aplati.

Comme d’habitude, si un index qui se trouve en dehors de la plage de arr est fourni à cette méthode, elle lève une exception 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)

Production:

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

Pour en savoir plus sur cette fonction, reportez-vous à la documentation officielle de cette fonction ici

Voici deux autres exemples de suppression dans un tableau NumPy multidimensionnel.

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)

Production:

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

Utilisez None comme valeur du paramètre 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)

Production:

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

Supprimer des éléments à l’aide de la fonction numpy.setdiff1d()

Cette fois, nous utiliserons la fonction setdiff1d() de NumPy. Cette fonction accepte trois paramètres, ar1, ar2 et assume_unique. ar1 et ar2 sont deux tableaux NumPy. Et assume_unique est un argument booléen optionnel. Sa valeur par défaut est False. Lorsqu’il est True, alors les deux tableaux d’entrée sont supposés être uniques, et cette hypothèse peut accélérer le temps de calcul.

setdiff1d() renvoie les valeurs uniques dans ar1 qui ne sont pas dans ar2.

Reportez-vous au code suivant.

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)

Production:

[ 1  2  4  6  8  9 10]

Contrairement à numpy.delete(), les deux tableaux sont des tableaux NumPy avec des éléments réels mais pas des index.

Pour en savoir plus sur cette fonction, reportez-vous à la documentation officielle de cette fonction ici.

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.