2015-01-21 6 views
14

Я работаю над проблемой, которая связана с вычислением углов преломления, а что нет. Однако кажется, что я не могу использовать функцию numpy.sin() в градусах. Я попытался использовать numpy.degrees() и numpy.rad2deg().Функция numpy.sin в градусах?

numpy.sin(90) 

numpy.degrees(numpy.sin(90)) 

Оба возврата ~ 0.894 и ~ 51.2 соответственно.

Благодарим за помощь.

ответ

28

Вы не хотите, чтобы конвертировать в градусов, потому что у вас уже есть свой номер (90) в градусах. Вы должны преобразовать 90 из градусов в радианы, и вы должны сделать это , прежде чем вы берете синус:

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

(Вы можете использовать либо deg2rad или radians.)

+0

Спасибо большое! Я ценю это. –

5

Используйте math модуль из стандартной библиотеки Python:

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

Как этот Данил? –

+1

Одна из проблем заключается в том, что она не является векторизованной, а решение numpy выше. Но, это сводится к тому, что вы используете numpy или нет ... –

+0

Что вы имеете в виду, векторизованное? Они оба возвращают одинаковое число. –