我有一个如下所示的df:
df[(df.Name==name)&(df.Sex==sex)]
除了上面提到的列之外,可用的列是“出生”和“年”。我用这个
绘制了一条“线”图df.plot('year', 'births', kind='line')
从视觉上看,我可以看到情节中有多个峰值。我怎样才能使用Python找到确切的峰数?
答案 0 :(得分:0)
如果你只想要正峰值,你可以这样做:
for i in range(1, len(array)-1):
if max(array[i-1], array[i], array[i+1]) == array[i]:
print('Peak found at {}'.format(i))
如果你想要正峰和负峰:
for i in range(1, len(array)-1):
if max(array[i-1], array[i], array[i+1]) == array[i] or
min(array[i-1], array[i], array[i+1]) == array[i]:
print('Peak found at {}'.format(i))
如果你想确保有很大的不同:
minimal_ratio = 1.5 # or whatever you choose
for i in range(1, len(array)-1):
if array[i] > minimal_ratio * array[i-1] and
array[i] > minimal_ratio * array[i+1]:
print('Peak found at {}'.format(i))