Trigonometria in NumPy

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.

Corsi correlati

Design Pattern per videogiochi

I Design Pattern sono soluzioni a problemi comuni che si incontrano nello sviluppo del software. Nel contesto dei videogiochi, questi pattern possono aiutare a gestire la complessità crescente dei giochi moderni. Sei appassionato di videogiochi? Hai mai pensato a come vengono progettati e sviluppati? Sei curioso di scoprire i segreti dietro la creazione dei tuoi giochi preferiti? Allora sei nel posto giusto! Questo corso è stato progettato per fornirti una solida comprensione dei Design Pattern, strumenti fondamentali per ogni sviluppatore di giochi. Attraverso esempi pratici e realistici, esploreremo insieme come questi pattern possono aiutarti a creare giochi più efficienti, flessibili e mantenibili.

Corso Fondamenti di Python

Python, uno dei linguaggi di programmazione più popolari al mondo, è ampiamente utilizzato da colossi dell’informatica e della tecnologia come Google, la Nasa e Mozilla.
Questo corso sui fondamenti di Python esplorerà le ragioni del suo successo duraturo. Impareremo la potente ed espressiva sintassi di Python, che consente di ottenere risultati impressionanti con poche righe di codice.

Blender Masterclass 2

I paesaggi, in generale, possono risultare intimidatori data la loro complessità, costituita da numerosi elementi che sembrano formare qualcosa di virtualmente infinito. Durante le lezioni di questo corso, ci concentreremo su una scomposizione delle diverse fasi coinvolte nella creazione di una scena, affrontandole una alla volta attraverso passi graduati.

Blender Masterclass 1

In questo corso di Blender 3D, Masha, in collaborazione con Gedemy, vi mostrerà il processo di modellazione, UV mapping, shading, e texture painting di un asset. Una volta apprese le basi, vedremo anche come effettuare il baking delle textures e la preparazione con successivo export della mesh in modo che possa essere utilizzabile all’interno di un qualsiasi altro software.

Crea il tuo account gratuito Gedemy

Gedemy è la prima piattaforma di formazione italiana che ti permette di sviluppare competenze in ambiti come Game Design, Programming, Arte, 3D, Tech, AI e molto altro.