| import numpy as np | |
| def calculate_moving_average(scores, window_size): | |
| # Convert the scores list to a NumPy array for better performance | |
| scores_array = np.array(scores) | |
| # Create an array of rolling windows using the np.convolve function | |
| moving_averages = np.around( | |
| np.convolve(scores_array, np.ones(window_size) / window_size, mode="valid"), 2 | |
| ) | |
| return list(moving_averages) | |
| def calculate_tendency_slope(scores): | |
| # Convert the scores list to a NumPy array for better performance | |
| scores_array = np.array(scores) | |
| # Calculate the first derivative (slope) of the scores | |
| derivative = np.around(np.gradient(scores_array), 2) | |
| return list(derivative) | |