python学习——使用numpy实现rolling函数

其实就是利用了,np.lib.stride_tricks.sliding_window_view函数
这个头文件看起来很奇怪,但是其实里面有不少比较有实用价值的函数,
废话不多说,直接上代码:

def rolling_max(x, window_size):
    return np.lib.stride_tricks.sliding_window_view(x, window_size).max(axis=-1)

def rolling_min(x, window_size):
    return np.lib.stride_tricks.sliding_window_view(x, window_size).min(axis=-1)

def rolling_mean(x, window_size):
    return np.lib.stride_tricks.sliding_window_view(x, window_size).mean(axis=-1)

def rolling_std(x, window_size):
    return np.lib.stride_tricks.sliding_window_view(x, window_size).std(axis=-1)

当然还有一些更高级的卷积运算的方式,如下所示,但是其实真的不如上面那个函数直观
反正我感觉没有很好理解

def moving_average(x, w):
    return np.convolve(x, np.ones(w), 'valid') / w

你可能感兴趣的:(python,学习,numpy)