首页 > 解决方案 > 如何找到连续函数的第二个峰值?

问题描述

我想编写一个函数来可靠地找到数组的第一个和第二个峰值。一维数组的解决方案就足够了,但如果解决方案适用于二维,那将是一个奖励。

这是一个例子:

ar = np.array([1,2,3,4,4.5,4.1,4.05,4,3,2,1,2,3,3.5,3.2,2,1,0])
indices = np.arange(len(ar))

ar2 = np.array([1,2,3,4,4.5,4.1,4.2,4,3,2,1,2,3,3.5,3.2,2,1,0])
indices2 = np.arange(len(ar2))

我想要一个peak(arr, tolerance)可以接受数组并给出第一个和第二个峰值的函数。对于ar,它将是4.53.5indices 413

现在我还希望该功能能够容忍小噪音。ar2即使在技术上第二种模式是4.2at ,它也应该给出相同的结果indices2 = 6。也许该函数可以有一个容错参数,无论是ar还是indices

在此处输入图像描述

标签: pythonnumpy

解决方案


推荐阅读