あなたのデータは定期的ではないと思います。疑似コードを示しますが、それで十分であることを願っています。
-- データを比較します
-- 差分で符号の変更を探しています。マックスにとっては、プラスからマイナスへと変化します。ゼロは特殊なケースです。numpy.sign() は、負、ゼロ、および正の値について、-1、0、1 の各値の符号を示します。
-- もう一度 diff を実行できます -- -2 と -1、または最小抑制 2 と 1 を探しています。境界を適切に処理してください。
良いlucke
import matplotlib.pyplot as plt
import numpy as np
dat= np.linspace(1, 5, 5)
dat2 = np.concatenate([dat, dat[::-1]+.5, dat,dat[::-1]])
## ignore above.
res = np.diff(np.sign(np.diff(dat2, prepend=[0])), append=0)
plt.plot(dat2) ## NB end conditions, and you can ignore plotting
plt.plot(res)
乾杯、E