У меня есть следующие данные:
data = np.array([ 0., 0., 0., 94., 30., 30., 30., 31., 29., 30., 29., 28., 26.,
29., 28., 29., 31., 32., 31., 29., 31., 31., 30., 34., 28., 31.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 2., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 54., 9., 9., 7., 7.,
14., 18., 13., 8., 2., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0.])
Если я построю график, он будет выглядеть так:
![enter image description here](https://i.stack.imgur.com/FRNoT.png)
Теперь я хотел бы автоматически определить точки красным цветом. Есть идеи, как мне это сделать?
РЕДАКТИРОВАТЬ: Попытка scipy.signal
, но она не определяет пики правильно, по крайней мере с конфигурацией по умолчанию:
from matplotlib import pyplot as plt
from scipy.signal import find_peaks
peaks, _ = find_peaks(data, height=20)
plt.plot(data)
plt.plot(peaks, data[peaks], "x")
plt.show()
![enter image description here](https://i.stack.imgur.com/eOq7M.png)