
Pour limiter les valeurs du tableau NumPy ndarray à une plage donnée, utilisez la méthode np.clip() ou clip() de ndarray.
En spécifiant les valeurs minimale et maximale dans l’argument, les valeurs hors plage sont remplacées par ces valeurs.
Ceci est utile lorsque vous souhaitez limiter les valeurs à une plage telle que 0,0 ~ 1,0 ou 0 ~ 255.
Cet article décrit le contenu suivant.
- Comment utiliser np.clip()
- Comment utiliser la méthode clip() de ndarray
Comment utiliser np.clip()
Spécifiez le tableau cible ndarray dans le premier argument a, la valeur minimale dans le deuxième argument a_min et la valeur maximale dans le troisième argument a_max.
import numpy as np
a = np.arange(10)
print(a)
# [0 1 2 3 4 5 6 7 8 9]
print(np.clip(a, 2, 7))
# [2 2 2 3 4 5 6 7 7 7]
Utilisez Aucun si vous souhaitez spécifier une seule des valeurs minimale et maximale. Il ne peut être omis.
print(np.clip(a, None, 7))
# [0 1 2 3 4 5 6 7 7 7]
print(np.clip(a, 2, None))
# [2 2 2 3 4 5 6 7 8 9]
# print(np.clip(a, 2))
# TypeError: clip() missing 1 required positional argument: 'a_max'
Le ndarray écrêté est renvoyé et le ndarray d’origine reste inchangé.
a_clip = np.clip(a, 2, 7)
print(a_clip)
# [2 2 2 3 4 5 6 7 7 7]
print(a)
# [0 1 2 3 4 5 6 7 8 9]
Comment utiliser la méthode clip() de ndarray
La méthode clip() de ndarray est presque la même.
Spécifiez la valeur minimale dans le premier argument min et la valeur maximale dans le deuxième argument max.
print(a.clip(2, 7))
# [2 2 2 3 4 5 6 7 7 7]
print(a.clip(None, 7))
# [0 1 2 3 4 5 6 7 7 7]
print(a.clip(2, None))
# [2 2 2 3 4 5 6 7 8 9]
Contrairement à np.clip(), min et max peuvent être omis car None est défini comme valeur par défaut pour min et max.
Notez que les noms d’arguments sont légèrement différents de np.clip(), soyez donc prudent lorsque vous les spécifiez comme arguments de mots-clés.
print(a.clip(2))
# [2 2 2 3 4 5 6 7 8 9]
print(a.clip(min=2))
# [2 2 2 3 4 5 6 7 8 9]
print(a.clip(max=7))
# [0 1 2 3 4 5 6 7 7 7]
Comme avec np.clip(), le ndarray coupé est renvoyé et le ndarray d’origine reste inchangé.
a_clip = a.clip(2, 7)
print(a_clip)
# [2 2 2 3 4 5 6 7 7 7]
print(a)
# [0 1 2 3 4 5 6 7 8 9]