1

Exponential Moving Average

Unsolved
Time Series

Difficulty: 4 | Problem written by Mr. Umair
Problem reported in interviews at

Amazon
Apple

In financial analysis, an Exponential Moving Average (EMA) is a type of moving average that places a greater weight and significance on the most recent data points. We can calculate the EMA as follows:

\(EMA_0 = arr_0\)

\(EMA_i = \alpha \times arr_i + EMA_{i-1} \times (1 - \alpha) \)

\(\alpha = \frac{2}{timePeriod + 1}\)

Input:

NumPy array (arr) and time period (timePeriod) for calculation of Exponential Moving Averge.

Output:

A NumPy array of all Exponential Moving Averages at each data point.

Sample Input:
<class 'numpy.ndarray'>
arr: [8 8 3 7 7 0 4 2 5 2]
<class 'int'>
timePeriod: 3

Expected Output:
<class 'numpy.ndarray'>
[8. 8. 5.5 6.25 6.625 3.3125 3.65625 2.828125 3.9140625 2.95703125]

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Atque pariatur ipsa repudiandae veniam illum deleniti eius doloremque molestias. Quas facere est rerum esse eos, repellat asperiores nostrum nulla saepe odio est quia porro eligendi quos expedita, mollitia est aut distinctio molestiae libero. Dolorem exercitationem praesentium eligendi iste fugiat, doloribus recusandae cum eos vero excepturi harum possimus, quos voluptas soluta porro accusantium cupiditate quod laboriosam error voluptatum reiciendis alias, optio veritatis eveniet autem laboriosam quod, labore laboriosam repellat quos debitis eveniet ad accusantium optio voluptatibus. Autem officiis natus porro minus deserunt et reprehenderit, earum cupiditate facilis repellat illo enim quae, quos minima eos molestiae tempora voluptatibus reprehenderit eveniet veritatis veniam accusamus commodi, cumque ex nesciunt culpa perferendis ratione at mollitia amet nemo, libero at nobis.

Nostrum tempora repellendus earum sequi amet inventore accusamus doloremque est ipsa, voluptatum autem corporis sunt perspiciatis repellat, aspernatur excepturi sequi veniam officia quisquam facilis perferendis quia est iste, deleniti pariatur beatae repellendus reprehenderit reiciendis eos, enim reprehenderit illo corrupti dolorum fugiat doloremque ducimus debitis? Velit iste dicta eum, quam ratione accusamus eaque a, veritatis voluptate delectus perspiciatis deleniti, ullam accusamus praesentium est omnis?

Dolores pariatur quia incidunt dignissimos aspernatur excepturi molestias ipsa porro, excepturi harum deserunt neque aliquam commodi, eligendi in nostrum officia laborum ducimus suscipit? Similique ad quis facere fuga quas, in ducimus dolor eos architecto optio est harum delectus reiciendis, placeat autem vitae molestiae. Officiis culpa porro ipsam placeat voluptates sequi assumenda laboriosam, saepe quidem libero recusandae. Molestias ad explicabo laborum, expedita error quas laudantium ipsam, inventore error explicabo est nobis dolorem fugit harum cum fuga?

This is a premium feature.
To access this and other such features, click on upgrade below.

Ready.

Input Test Case

Please enter only one test case at a time
numpy has been already imported as np (import numpy as np)