Я реализовал алгоритм для обнаружения отрицательной части данного пика. Основная проблема, с которой легко сталкиваются выбросы, какие-либо рекомендации по ее улучшению?
def stepdown(self):
peak_location_y = self.spec[self.peak_idx]
peak_indcies = self.peak_idx
spec_y = self.spec
neg_peak = []
for peak_index, peak_y in zip(peak_indcies, peak_location_y):
i = 1
tmp = [0]
try:
while (
peak_y >= spec_y[peak_index + i]
and
spec_y[peak_index + i - 1] >= spec_y[peak_index + i]
):
tmp.append(peak_index + i)
i += 1
neg_peak.append(tmp[-1])
except IndexError:
print("Index Error")
return neg_peak
Я знаю, что качество кода ужасно. Я просто прототип Вот примеры, когда он работает правильно и когда он терпит неудачу . Верхняя часть рисунка - это отрицательные пики, обнаруженные алгоритмом, а нижняя часть - положительные пики.