Find all local Maxima and Minima when x and y values are given as numpy arrays

前端 未结 3 494
日久生厌
日久生厌 2020-12-03 08:16

I have two arrays x and y as :

x = np.array([6, 3, 5, 2, 1, 4, 9, 7, 8])
y = np.array([2, 1, 3, 5, 3, 9, 8, 10, 7])
3条回答
  •  南方客
    南方客 (楼主)
    2020-12-03 09:06

    x=np.array([6,3,5,2,1,4,9,7,8])
    y=np.array([2,1,3,5,7,9,8,10,7])
    
    sort_idx = np.argsort(x)
    y=y[sort_idx]
    x=x[sort_idx]
    minm=np.array([],dtype=int)
    maxm=np.array([],dtype=int)
    length = y.size
    i=0
    
    while i < length-1:
        if i < length - 1:
            while i < length-1 and y[i+1] >= y[i]:
                i+=1
    
            if i != 0 and i < length-1:
                maxm = np.append(maxm,i)
    
            i+=1
    
        if i < length - 1:
            while i < length-1 and y[i+1] <= y[i]:
                i+=1
    
            if i < length-1:
                minm = np.append(minm,i)
            i+=1
    
    
    print minm
    print maxm
    

    minm and maxm contain indices of minima and maxima, respectively.

提交回复
热议问题