How can i write x.append(1-e^(-value1^2/2*value2^2)) in python 2.7?
I don't know how to use power operator and e.
26 Answers
You can use exp(x) function of math library, which is same as e^x. Hence you may write your code as:
import math
x.append(1 - math.exp( -0.5 * (value1*value2)**2))I have modified the equation by replacing 1/2 as 0.5. Else for Python <2.7, we'll have to explicitly type cast the division value to float because Python round of the result of division of two int as integer. For example: 1/2 gives 0 in python 2.7 and below.
Python's power operator is ** and Euler's number is math.e, so:
from math import e x.append(1-e**(-value1**2/2*value2**2)) 1 Just saying: numpy has this too. So no need to import math if you already did import numpy as np:
>>> np.exp(1)
2.718281828459045 1 Power is ** and e^ is math.exp:
x.append(1 - math.exp(-0.5 * (value1*value2)**2)) 0 math.e or from math import e (= 2.718281…)
The two expressions math.exp(x) and e**x are equivalent
however:
Return e raised to the power x, where e = 2.718281… is the base of natural logarithms. This is usually more accurate than math.e ** x or pow(math.e, x). docs.python
for power use ** (3**2 = 9), not " ^ "
" ^ " is a bitwise XOR operator (& and, | or), it works logicaly with bits.
So for example 10^4=14 (maybe unexpectedly) → consider the bitwise depiction:
(0000 1010 ^ 0000 0100 = 0000 1110) programiz
Just to add, numpy also has np.e