2015-01-21 37 views
14

Sto lavorando su un problema che ha a che fare con il calcolo degli angoli di rifrazione e cosa no. Tuttavia, sembra che non sia possibile utilizzare la funzione numpy.sin() in gradi. Ho provato a usare numpy.degrees() e numpy.rad2deg().numpy.sin funzione in gradi?

numpy.sin(90) 

numpy.degrees(numpy.sin(90)) 

Entrambi restituiscono rispettivamente ~ 0.894 e ~ 51.2.

Grazie per il vostro aiuto.

risposta

28

Non si desidera convertire in gradi, perché il numero (90) è già espresso in gradi. È necessario convertire il 90 da gradi in radianti, ed è necessario farlo prima di prendere il seno:

>>> np.sin(np.deg2rad(90)) 
1.0 

(è possibile utilizzare sia deg2rad o radians.)

+0

Grazie mille! Lo apprezzo. –

5

Utilizzare il math modulo dalla libreria standard Python:

>>> math.sin(math.radians(90)) 
+0

Com'è questo Danill? –

+1

Un problema potrebbe essere che non è vettorizzato mentre la soluzione numpy sopra è. Ma questo si riduce a se stai usando numpy o no ... –

+0

Cosa intendi con vettori? Entrambi restituiscono lo stesso numero. –