找出一组数据的峰值,找出一组数据峰值,#-*- coding=
#-*- coding=utf-8 -*-data = [1, 1.1,1.2, 1.3, 1.5, 1.6 , 1.7 , 1.8, 2, 3, 2, 3, 4, 3, 4, 5, 4, 3, 1.8]#每个顶点的index, D(Down),U(Up)apex_index = []#趋势-1(Down), 0, 1(Up)qs = 0#偏离值和偏离百分比plz_p = 0.2#当前值min_index = max_index = 0for index, num in enumerate(data): min_dqz = data[min_index] max_dqz = data[max_index] min_plz = min_dqz * plz_p max_plz = max_dqz * plz_p print '='*10, index, '='*10 print 'plz:', num - min_dqz, min_plz, 'qs:', qs, 'min_index:', min_index, 'up' print 'plz:', num - max_dqz, max_plz, 'qs:', qs, 'max_index:', max_index, 'down' #上升 if (num - min_dqz ) >0: if (num - min_dqz- min_plz) > 0: if qs != 1: apex_index.append( 'U%s'%min_index ) max_index = index max_dqz = num print 'U%s'%min_index qs = 1 #下降 if (num - max_dqz) <0: if (num - max_dqz) < -max_plz: if qs!=-1: apex_index.append( 'D%s'%max_index ) min_index = index min_dqz = num print 'D%s'%max_index qs = -1 if num > max_dqz: max_index = index if num < min_dqz: min_index = indexprint apex_index, qs, max_index, min_indexraw_input()#该片段来自于http://byrx.net
评论关闭