code: def _rolling_window(data, block):
      
      shape = data.shape[:-1] + (data.shape[-1] - block + 1, block)
      strides = data.strides + (data.strides[-1],)
      return np.lib.stride_tricks.as_strided(data, shape=shape, strides=strides)
docs: http://stackoverflow.com/questions/4936620/
      Using strides for an efficient moving average filter.