Код: Выделить всё
import matplotlib.pyplot as plt
from scipy.signal import find_peaks, peak_prominences
# I have my array x
peaks, _ = find_peaks(x)
prominences, left_bases, right_bases = peak_prominences(x, peaks)
contour_heights = x[peaks] - prominences
plt.plot(x)
plt.plot(peaks, x[peaks], "x")
plt.vlines(x=peaks, ymin=contour_heights, ymax=x[peaks])
plt.hlines(contour_heights, xmin=left_bases, xmax=right_bases)
plt.show()

Действительно, left_bases = array([ 4, 10, 16, 22, 29, 36, 42]) тогда как right_bases = array([47, 47, 47, 29, 47, 47, 47]).
Действительно, это не совсем то, что я искал, я ожидал, например, правильного значения right_bases[0] = 10. Почему это происходит? Как код определяет правое и левое основание?
Подробнее здесь: https://stackoverflow.com/questions/798 ... rominences
Мобильная версия