timeseries最初に配列に入れます。timeseriesの値がであると仮定しましょうmy_array。それで、
import numpy as np
s = np.cumsum(my_array) - rate
s[s < 0] = 0
new_timeseries = s
更新:これは正しくありません。増分がレートを下回るcumsum場合、ゼロ化は考慮されません。導関数を使用して、 がレートを下回っsている点を見つけることができます。cumsum
In [1]: dd = np.diff(np.cumsum(my_array))
In [2]: dd < rate
Out[3]: array([ True, False, True, False, False, True, True,
True, True, False, True, False, True, False,
True, True, True, False, False], dtype=bool)
ただし、これは を「リセット」しませんcumsum。これらのインデックスを探してcumsum「Trues」のブロックを実行することもできますが、ループよりも効率的かどうかはわかりません。