simpler form
implemented derivates with np.convolve