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」のブロックを実行することもできますが、ループよりも効率的かどうかはわかりません。