Time for action – calculating the Exponential Moving Average
Given an array, the exp()
function calculates the exponential of each array element. For example, look at the following code:
x = np.arange(5) print("Exp", np.exp(x))
It gives the following output:
Exp [ 1. 2.71828183 7.3890561 20.08553692 54.59815003]
The linspace()
function takes as parameters a start value, a stop value, and optionally an array size. It returns an array of evenly spaced numbers. This is an example:
print("Linspace", np.linspace(-1, 0, 5))
This will give us the following output:
Linspace [-1. -0.75 -0.5 -0.25 0. ]
Calculate the EMA for our data:
Now, back to the weights, calculate them with
exp()
andlinspace()
:N = 5 weights = np.exp(np.linspace(-1., 0., N))
Normalize the weights with the
ndarray
sum()
method:weights /= weights.sum() print("Weights", weights)
For
N = 5
, we get these weights:Weights [ 0.11405072 0.14644403 0.18803785 0.24144538 0.31002201]
After this, use the
convolve()
function...