smooth [arr] using moving average

def staticMovingAverage(arr, fineness=10):
    """
    smooth [arr] using moving average
    """
    s0 = arr.shape[0]
    window_len = int(round(s0 / fineness))

    start = arr[0] + arr[0] - arr[window_len - 1:0:-1]
    end = arr[-1] + arr[-1] - arr[-1:-window_len:-1]
    s = np.r_[start, arr, end]
    w = np.ones(window_len, 'd')
    w /= w.sum()
    a0 = np.convolve(w, s, mode='valid')[:s0]
    a1 = np.convolve(w, s[::-1], mode='valid')[:s0][::-1]
    return 0.5 * (a0 + a1)