根据值之间的差异将数组拆分为不均匀的块

时间:2020-03-23 11:18:11

标签: python arrays split

一组显示背景曲线和6个峰的x和y数据。我创建了一个删除背景数据的函数,并创建了一个仅包含6个峰的x值的新数组。现在,我想对每个峰进行分析,因此想将我的阵列分成6个较小的阵列,每个阵列包含1个峰的值。 x值不是均匀分布的块,但是一个峰内的x值之差不大于0.3,并且1个峰的终点与下一个峰的起点之间的差约为1。所以我在想我可以将数组拆分为较小的数组,其中1个数组的结尾与下一个数组的开头之间的差是一个设定值即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

0 个答案:

没有答案