Supprimer des éléments du tableau dans NumPy
-
Supprimer des éléments à l’aide de la fonction
numpy.delete()
-
Supprimer des éléments à l’aide de la fonction
numpy.setdiff1d()
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.