2014-10-21 1 views
5

Я пытаюсь вычислить 8th корень квадратный из значения или ее^1/8, но NumPy всегда возвращаются неверного значениеКак я могу вычислить степень фракций или n-й квадрат корня в numpy?

temp = 141.18 
h2 = temp ** (1/8) 
h2_ = np.power(temp, (1/8)) 

мой выход всегда 1,0. Я тоже попробовал квадратную команду. Мне нужно использовать numpy, я использую другие массивы numpy в mycode, чтобы поддерживать совместимость.

+2

возможно вы можете попробовать с '1./8.'? !! – Dalek

ответ

4
>>> 1/8 
0 
>>> 1./8 
0.125 

И, конечно же, ничего о силе 0 результатов в 1.

0

Понимание числовой башни.

Правило 1: При наличии двух операндов того же типа результат будет иметь этот тип.

например. INT/INT = INT

temp**(1/8) не дает 8-й корень температуры, потому что:

>>>1/8 
0 

Правило 2: Если операнды смешиваются, один из них будет принуждать до цифровой башни: целое число -> рациональный -> флоат -> комплекс.

например. поплавок/INT = поплавок

>>>1./8 # 1. is a float 
0.125 

Примечание: Там могут быть случаи, когда эти правила не применяются к истинному деление/и пол разделения // но я не до конца понимаю их. См. link.

«Они провели исследования, которые вы знаете, они работают 60% времени ... каждый раз». - Брайан Fantana

Trap: В ЕМ вопросе выражения temp**(1/8) сделано из смешанных операндов (температура является поплавком), так почему не (1/8) поплавка?

Операнды оцениваются в соответствии с BODMAS/BIDMAS так (1/8) сначала вычисляется, полученное выражение становится temp**0 и в этот момент 0 принуждается к поплавку.

Любое положительное int или float к власти 0.0 является 1.0.

 Смежные вопросы

  • Нет связанных вопросов^_^