Vous pouvez utiliser ๐งโ๐ฉโ.๐โ๐ฅโ๐จโ๐จโ๐ซโ() , ๐งโ๐ฉโ.๐ญโ๐ซโ๐ฎโ๐งโ๐โ() et ๐งโ๐ฉโ.๐โ๐โ๐ขโ๐ฅโ() pour arrondir vers le haut ou vers le bas les รฉlรฉments d’un tableau NumPy ( ๐งโ๐โ๐โ๐ซโ๐ซโ๐โ๐ฒโ ).
Considรฉrant les valeurs positives et nรฉgatives, il existe quatre principaux types d’arrondi : vers l’infini nรฉgatif, vers zรฉro, vers l’infini positif et vers l’infini.
- Arrondir vers le bas (= arrondir vers moins l’infini) : ๐งโ๐ฉโ.๐โ๐ฅโ๐จโ๐จโ๐ซโ()
- Arrondir vers zรฉro (= tronquer) : ๐งโ๐ฉโ.๐ญโ๐ซโ๐ฎโ๐งโ๐โ() , ๐งโ๐ฉโ.๐โ๐ขโ๐ฑโ() , convertir en ๐ขโ๐งโ๐ญโ
- Arrondir vers le haut (= arrondir vers l’infini positif) : ๐งโ๐ฉโ.๐โ๐โ๐ขโ๐ฅโ()
- Rond vers l’infini
Vous pouvez utiliser ๐งโ๐ฉโ.๐ซโ๐จโ๐ฎโ๐งโ๐โ() pour arrondir de moitiรฉ ร paire.
Pour arrondir les dรฉcimales vers le haut et vers le bas ร l’aide du module ๐ฆโ๐โ๐ญโ๐กโ , reportez-vous ร l’article suivant.
La version de NumPy utilisรฉe dans cet article est la suivante. Notez que les fonctionnalitรฉs peuvent varier selon les versions.
import numpy as np print(np.__version__) # 1.26.1
Arrondir vers le bas (= arrondir vers moins l’infini) : ๐งโ๐ฉโ.๐โ๐ฅโ๐จโ๐จโ๐ซโ()
Utilisez ๐งโ๐ฉโ.๐โ๐ฅโ๐จโ๐จโ๐ซโ() pour arrondir vers moins l’infini.
a = np.array([[10.0, 10.1, 10.9], [-10.0, -10.1, -10.9]]) print(a) # [[ 10. 10.1 10.9] # [-10. -10.1 -10.9]] print(np.floor(a)) # [[ 10. 10. 10.] # [-10. -11. -11.]] print(np.floor(a).dtype) # float64
Le type de donnรฉes renvoyรฉes est un nombre ร virgule flottante ( ๐โ๐ฅโ๐จโ๐โ๐ญโ ). Utilisez ๐โ๐ฌโ๐ญโ๐ฒโ๐ฉโ๐โ() pour le convertir en entier ( ๐ขโ๐งโ๐ญโ ). Ceci s’applique รฉgalement ร ๐งโ๐ฉโ.๐ญโ๐ซโ๐ฎโ๐งโ๐โ() , ๐งโ๐ฉโ.๐โ๐โ๐ขโ๐ฅโ() , etc.
print(np.floor(a).astype(int)) # [[ 10 10 10] # [-10 -11 -11]]
Vous pouvez รฉgalement dรฉfinir une valeur scalaire, qui s’applique ร ๐งโ๐ฉโ.๐ญโ๐ซโ๐ฎโ๐งโ๐โ() , ๐งโ๐ฉโ.๐โ๐โ๐ขโ๐ฅโ() , etc.
print(np.floor(10.1)) # 10.0
Arrondir vers zรฉro (= tronquer) : ๐งโ๐ฉโ.๐ญโ๐ซโ๐ฎโ๐งโ๐โ() , ๐งโ๐ฉโ.๐โ๐ขโ๐ฑโ() , convertir en ๐ขโ๐งโ๐ญโ
Utilisez ๐งโ๐ฉโ.๐ญโ๐ซโ๐ฎโ๐งโ๐โ() pour arrondir vers zรฉro.
a = np.array([[10.0, 10.1, 10.9], [-10.0, -10.1, -10.9]]) print(a) # [[ 10. 10.1 10.9] # [-10. -10.1 -10.9]] print(np.trunc(a)) # [[ 10. 10. 10.] # [-10. -10. -10.]]
๐งโ๐ฉโ.๐โ๐ขโ๐ฑโ() arrondit รฉgalement vers zรฉro.
print(np.fix(a)) # [[ 10. 10. 10.] # [-10. -10. -10.]]
Alternativement, convertir un nombre ร virgule flottante ( ๐โ๐ฅโ๐จโ๐โ๐ญโ ) en un entier ( ๐ขโ๐งโ๐ญโ ) en utilisant ๐โ๐ฌโ๐ญโ๐ฒโ๐ฉโ๐โ() arrondit รฉgalement vers zรฉro.
print(a.astype(int)) # [[ 10 10 10] # [-10 -10 -10]]
Arrondir vers le haut (= arrondir vers l’infini positif) : ๐งโ๐ฉโ.๐โ๐โ๐ขโ๐ฅโ()
Utilisez ๐งโ๐ฉโ.๐โ๐โ๐ขโ๐ฅโ() pour arrondir vers l’infini positif.
a = np.array([[10.0, 10.1, 10.9], [-10.0, -10.1, -10.9]]) print(a) # [[ 10. 10.1 10.9] # [-10. -10.1 -10.9]] print(np.ceil(a)) # [[ 10. 11. 11.] # [-10. -10. -10.]]
Rond vers l’infini
Depuis la version 1.26 , NumPy n’a pas de fonction pour arrondir vers l’infini, mais cela peut รชtre rรฉalisรฉ comme suit :
a = np.array([[10.0, 10.1, 10.9], [-10.0, -10.1, -10.9]]) print(a) # [[ 10. 10.1 10.9] # [-10. -10.1 -10.9]] print(np.copysign(np.ceil(np.abs(a)), a)) # [[ 10. 11. 11.] # [-10. -11. -11.]]
La valeur absolue est obtenue en utilisant ๐งโ๐ฉโ.๐โ๐โ๐ฌโ() , puis arrondie ร l’entier supรฉrieur avec ๐งโ๐ฉโ.๐โ๐โ๐ขโ๐ฅโ() , et le signe d’origine est restaurรฉ avec ๐งโ๐ฉโ.๐โ๐จโ๐ฉโ๐ฒโ๐ฌโ๐ขโ๐ โ๐งโ() .
