HOWTO · Python
Calculer l'inverse du cosinus en Python
Nous pouvons calculer l'inverse du cosinus en Python en utilisant la fonction acos() et la bibliothèque NumPy
Sur cette page
L’arc cosinus, également appelé arccosinus, donne l’angle principal dont le cosinus est une valeur donnée. C’est la fonction réciproque du cosinus, et non son inverse multiplicatif (1 / cos(x)). En Python, utilisez math.acos() pour un nombre unique ou numpy.arccos() pour effectuer des calculs sur des tableaux. Ces deux fonctions renvoient des angles en radians.
Utiliser math.acos() pour une valeur unique
La fonction math.acos() de la bibliothèque standard accepte un nombre réel compris entre -1 et 1. Par exemple, le cosinus de 0,5 correspond à un angle de π/3 radians, soit 60 degrés.
Exécutez cet exemple :
Le code et les libellés ou sorties affichés dans cette section restent en anglais.
import math
cosine_value = 0.5
angle_radians = math.acos(cosine_value)
print(angle_radians)
1.0471975511965979
Cet exemple affiche l’angle en radians. La valeur renvoyée est d’environ 1,0472, soit π/3. Le résultat principal de l’arc cosinus est compris entre 0 et π radians.
Convertir le résultat des radians en degrés
Utilisez math.degrees() pour convertir le résultat ; degrees() est une fonction du module math, et non une fonction intégrée autonome. Le formatage détermine le nombre de décimales affichées, tandis que le nombre flottant conserve sa précision habituelle.
Le code et les libellés ou sorties affichés dans cette section restent en anglais.
import math
cosine_value = 0.5
angle_radians = math.acos(cosine_value)
angle_degrees = math.degrees(angle_radians)
print(f"{angle_degrees:.1f} degrees")
60.0 degrees
L’exemple affiche l’angle avec une décimale, suivi du libellé « degrees », qui reste en anglais dans la sortie inchangée. Modifiez .1f pour choisir le nombre de décimales dans le texte formaté.
Utiliser numpy.arccos() avec des tableaux
NumPy est un paquet tiers : installez-le dans votre environnement avant d’utiliser cet exemple. Son opération arccos s’applique élément par élément à un tableau, ce qui est utile lorsque les entrées sont déjà organisées sous forme de données NumPy.
Le code et les libellés ou sorties affichés dans cette section restent en anglais.
import numpy as np
cosine_values = np.array([0.5, 1.0, -1.0])
angles_radians = np.arccos(cosine_values)
print(angles_radians)
[1.04719755 0. 3.14159265]
Le résultat contient un angle en radians pour chaque entrée : environ π/3, 0 et π. NumPy peut aussi calculer l’arc cosinus d’une valeur unique, mais math.acos() est le choix le plus simple lorsque vous n’avez besoin que du résultat pour un seul scalaire.
Intervalle des entrées et choix entre math.acos() et numpy.arccos()
Pour obtenir un arc cosinus réel, chaque entrée doit être comprise entre -1 et 1, bornes incluses. En dehors de cet intervalle, l’arc cosinus n’a pas de valeur réelle. math.acos() déclenche une exception ValueError si une valeur est hors limites. Avec les paramètres d’erreur habituels de NumPy, numpy.arccos() renvoie nan pour l’élément concerné et émet un avertissement d’exécution. Vérifiez ou bornez les valeurs de cosinus calculées uniquement si cela correspond au sens de votre calcul : les borner peut masquer une erreur survenue en amont. Si une valeur provient du produit scalaire de vecteurs normalisés, les erreurs d’arrondi en virgule flottante peuvent la faire légèrement dépasser l’intervalle. Ne la bornez que si vous savez que l’écart vient de l’arrondi ; sinon, examinez le calcul. Avec un tableau, vérifiez quelles entrées sont hors limites avant d’utiliser les résultats.
Choisissez math.acos() pour un scalaire unique et numpy.arccos() pour des tableaux ou des calculs vectorisés. NumPy ne fait pas partie de la bibliothèque standard de Python. Son interface orientée tableaux est la principale raison de le choisir ici ; les performances dépendent de la charge de travail et ne sont pas nécessairement meilleures pour toutes les tailles d’entrée.