python - 如何找到连续函数的第二个峰值?
问题描述
我想编写一个函数来可靠地找到数组的第一个和第二个峰值。一维数组的解决方案就足够了,但如果解决方案适用于二维,那将是一个奖励。
这是一个例子:
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.5
和3.5
在indices
4
和13
。
现在我还希望该功能能够容忍小噪音。ar2
即使在技术上第二种模式是4.2
at ,它也应该给出相同的结果indices2 = 6
。也许该函数可以有一个容错参数,无论是ar
还是indices
。
解决方案
推荐阅读
- apache-kafka - 卡夫卡消费者:消费者和生产者之间的抵消滞后
- sql - TimescaleDB在时间间隔内查询发生
- html - 继续两个单独数组的索引顺序
- python - 如果未提供标志,则 Python 解析参数
- python - 将 period_range 转换为字符串列表
- css - 导入 scss 文件不会自动生成 css,在输出中显示编译错误
- kubernetes - 将 pod 中的 Mongodb 连接到 kubernetes 中的另一个 nestjs api pod
- java - 方法 thenReturn(Future
) 在 OngoingStubbing 类型中 > 不适用于参数(字符串) - c - 在 switch case 语句中声明变量
- linux - 如何使用 awk 命令行打印列并添加标题