La trigonometria in NumPy è uno degli strumenti più utili per chi lavora con Python in ambito scientifico, matematico e numerico. Se stai iniziando adesso, sapere come usare funzioni come numpy.sin(), numpy.cos() e numpy.tan() ti permette di affrontare calcoli su angoli e array in modo rapido, pulito ed efficiente.
NumPy è una libreria molto apprezzata perché consente di eseguire operazioni matematiche su singoli valori e su interi insiemi di dati senza dover scrivere cicli complessi. In pratica, invece di calcolare seno, coseno o tangente un numero alla volta, puoi applicare la stessa funzione a un intero array con una sola istruzione.
Un aspetto fondamentale da ricordare è che le funzioni trigonometriche di NumPy lavorano in radianti, non in gradi. Questo è uno dei punti che più spesso crea confusione a chi è alle prime armi. Per questo motivo, in questa guida vedremo anche come convertire i valori quando serve.
Come usare il seno con numpy.sin() in Python
La funzione numpy.sin() serve a calcolare il seno di un angolo espresso in radianti. È una funzione essenziale quando si lavora con grafici, onde, rotazioni, simulazioni e problemi geometrici.
Un esempio molto semplice è il seguente:
import numpy as np
angolo = np.pi / 2
risultato = np.sin(angolo)
print(risultato)
In questo caso, il risultato sarà molto vicino a 1.0, perché il seno di 90 gradi, cioè π / 2 radianti, vale 1.
Il vero vantaggio di NumPy emerge quando lavori con più valori contemporaneamente:
import numpy as np
angoli = np.array([0, np.pi / 2, np.pi])
risultati = np.sin(angoli)
print(risultati)
Con poche righe puoi ottenere il seno di tutti gli elementi dell’array. Questo approccio è molto più elegante e performante rispetto a una gestione manuale con liste tradizionali.
Se invece hai angoli in gradi, puoi convertirli in radianti con numpy.radians():
import numpy as np
angoli_gradi = np.array([0, 30, 45, 60, 90])
angoli_radianti = np.radians(angoli_gradi)
risultati = np.sin(angoli_radianti)
print(risultati)
Questa è una pratica molto comune, soprattutto quando i dati arrivano da esercizi scolastici, grafici o input utente espressi in gradi.
Calcolare il coseno con numpy.cos(): guida semplice
La funzione numpy.cos() permette di ottenere il coseno di uno o più angoli. Anche in questo caso, i valori devono essere espressi in radianti. Il funzionamento è molto simile a quello di numpy.sin(), quindi una volta compreso il meccanismo, l’uso diventa immediato.
Ecco un esempio base:
import numpy as np
angolo = 0
risultato = np.cos(angolo)
print(risultato)
Il coseno di 0 è 1.0, quindi questo è un buon test iniziale per verificare che tutto funzioni correttamente.
Vediamo ora un esempio su array:
import numpy as np
angoli = np.array([0, np.pi / 3, np.pi / 2, np.pi])
risultati = np.cos(angoli)
print(risultati)
Questo tipo di calcolo è estremamente utile nelle applicazioni di analisi numerica e nella generazione di segnali periodici. In molti casi pratici, seno e coseno vengono usati insieme per descrivere traiettorie, movimenti circolari e oscillazioni.
Se vuoi osservare seno e coseno nello stesso script, puoi fare così:
import numpy as np
angoli = np.radians([0, 30, 60, 90])
seno = np.sin(angoli)
coseno = np.cos(angoli)
print(seno)
print(coseno)
Questo approccio aiuta molto a confrontare i due valori e a capire meglio il comportamento delle principali funzioni trigonometriche in NumPy.
Funzione tangente in NumPy: usare numpy.tan() senza errori
La funzione numpy.tan() calcola la tangente di un angolo in radianti. È importante usarla con attenzione, perché per alcuni angoli il risultato può diventare molto grande o risultare numericamente instabile. Un esempio tipico è vicino a 90 gradi, dove la tangente tende all’infinito.
Ecco un primo esempio:
import numpy as np
angolo = np.pi / 4
risultato = np.tan(angolo)
print(risultato)
Poiché la tangente di 45 gradi vale 1, il risultato sarà molto vicino a 1.0.
Quando lavori su più angoli, puoi fare così:
import numpy as np
angoli = np.radians([0, 30, 45, 60])
risultati = np.tan(angoli)
print(risultati)
Se provi a calcolare la tangente di 90 gradi, noterai un valore enorme invece di un errore classico. Questo dipende dal modo in cui il computer rappresenta i numeri in virgola mobile.
import numpy as np
angolo = np.radians(90)
risultato = np.tan(angolo)
print(risultato)
Dal punto di vista pratico, conviene sempre controllare gli input quando si usa numpy.tan(), soprattutto in formule più complesse o in elaborazioni automatiche di dataset.
Arcoseno con numpy.arcsin(): significato ed esempi utili
La funzione numpy.arcsin() restituisce l’arcoseno, cioè l’angolo il cui seno corrisponde al valore fornito. A differenza di numpy.sin(), qui non stai partendo da un angolo, ma da un valore compreso tra -1 e 1.
Questo intervallo è fondamentale: se inserisci un numero fuori da questi limiti, il risultato non sarà valido dal punto di vista matematico reale.
Ecco un esempio semplice:
import numpy as np
valore = 1
risultato = np.arcsin(valore)
print(risultato)
Il risultato sarà circa 1.5708, cioè π / 2 radianti. Se vuoi trasformarlo in gradi, puoi usare numpy.degrees():
import numpy as np
valore = 0.5
angolo_radianti = np.arcsin(valore)
angolo_gradi = np.degrees(angolo_radianti)
print(angolo_radianti)
print(angolo_gradi)
Anche qui NumPy consente di lavorare su array in modo molto naturale:
import numpy as np
valori = np.array([0, 0.5, 1])
risultati = np.arcsin(valori)
print(risultati)
Questa funzione è molto utile quando devi ricavare un angolo a partire da una misura già nota, per esempio in applicazioni geometriche, modelli fisici o calcoli inversi.
Altre funzioni trigonometriche di NumPy da conoscere
Oltre a seno, coseno, tangente e arcoseno, NumPy mette a disposizione diverse altre funzioni trigonometriche e inverse. Conoscerle ti aiuta ad avere una visione più completa della libreria e ad affrontare casi pratici con maggiore sicurezza.
Altre operazioni utili: arccoseno, arctan e conversioni angolari
Tra le funzioni più usate troviamo numpy.arccos(), numpy.arctan() e numpy.arctan2(). Le prime due restituiscono rispettivamente arccoseno e arcotangente, mentre arctan2 è particolarmente comoda quando vuoi determinare l’angolo a partire da coordinate cartesiane.
import numpy as np
x = 1
y = 1
angolo = np.arctan2(y, x)
print(angolo)
print(np.degrees(angolo))
numpy.arctan2() è spesso preferita a numpy.arctan() perché gestisce meglio i quadranti e riduce le ambiguità nel risultato finale.
Molto utili sono anche le funzioni di conversione tra gradi e radianti:
import numpy as np
gradi = 180
radianti = np.radians(gradi)
valore = np.pi
gradi_convertiti = np.degrees(valore)
print(radianti)
print(gradi_convertiti)
Queste conversioni sono piccole, ma decisive. Nella pratica quotidiana, gran parte degli errori iniziali nasce proprio dal confondere gradi e radianti.
Funzioni iperboliche e strumenti correlati in NumPy
NumPy include anche funzioni come numpy.sinh(), numpy.cosh() e numpy.tanh(), che appartengono alla trigonometria iperbolica. Pur essendo meno frequenti nei primi esercizi, diventano importanti in contesti più avanzati come analisi matematica, fisica teorica e machine learning.
import numpy as np
valori = np.array([0, 1, 2])
print(np.sinh(valori))
print(np.cosh(valori))
print(np.tanh(valori))
Per un principiante non è indispensabile memorizzarle subito tutte, ma sapere che esistono è utile per orientarsi meglio nella documentazione NumPy e capire quanto sia ampia la libreria.