Я набор данных x и y, показывающих кривую фона и 6 пиков. Я создал функцию, которая удаляет фоновые данные и создает новый массив только с x-значениями для 6 пиков. Теперь я хочу провести анализ каждого отдельного пика, поэтому хочу разбить мой массив на 6 меньших массивов, которые содержат значения для 1 пика каждый. Значения x не в кусках одинакового размера, но разница между значениями x в пике не превышает 0,3, а разница между окончанием 1 sh 1 пика и началом следующего составляет около 1. Так что я Я думаю, что я могу разбить массив на меньшие массивы, разница между окончанием 1 массива и началом следующего составляет установленное значение ie .1. Любая помощь оценена
(редактировать: мне уже удалось сделать выше, но функция дает мне только 5 пиков и пропускает последний, 6-й пик):
#xnb is x data without any background, for example:
xnb=[1.1,1.2,1.3,1.4,1.5,3.4,3.5,3.6,3.7,7.8,7.9,10.8,10.9,11.0,11.1] #4 peaks
def peakfinder(xnb):
pn=[]
peakarrays=[]
prevpoint=xnb[0]
for point in xnb:
dif=point-prevpoint
if dif<=0.3 and dif>=-0.3:
pn.append(point)
else:
peakarrays.append(pn)
pn=[]
prevpoint=point
return peakarrays