utils.py 557 bytes
import numpy as np


def average_smoothing_with_sliding_window(x, y, window_size_for_smoothing):
    # Average on windows of size 2*M+1 (M elements on each side)
    kernel = np.ones(window_size_for_smoothing) / window_size_for_smoothing
    y = np.convolve(y, kernel, mode='valid')
    assert window_size_for_smoothing % 2 == 1
    if window_size_for_smoothing > 1:
        nb_to_delete = int(window_size_for_smoothing // 2)
        x = np.array(x)[nb_to_delete:-nb_to_delete]
    assert len(x) == len(y), "{} vs {}".format(len(x), len(y))
    return x, y