返回

python-查找不被零包围的元素的局部极大值索引

发布时间:2022-05-18 21:48:40 235
# node.js

我试图识别局部极大值的索引,而不是被一维numpy数组的零所包围。

原始代码是:

max_idx = [
    i for i in range(1, len(elem_array) - 1)
    if ((elem_array[i - 1] < elem_array[i]) and (elem_array[i + 1] <= elem_array[i]))
    and ((elem_array[i - 1] != 0) or (elem_array[i + 1] != 0))
]

以下代码使用数组:

elem_array = np.array([23,  0, 45,  0, 12, 13, 14,  0,  0,  0,  1, 67,  1])

结果是:max_idx = [6, 11].

重要事项:元素i可以大于或等于元素i+1,但只是大于元素i-1还有0只能在元素的一侧i这就是为什么45未被视为本地最大值。

我试着用scipy.signal.argrelextrema,但这给了我一个结果:max_idx = [2, 6, 11],它包含一个额外的元素。

使用阵列:

elem_array = np.array([0.0, 0.0, 0.0, 0.0, 0.07, 0.2, 0.4, 0.6, 0.8, 0.9, 1.0, 1.0, 1.0, 1.0, 1.0])

结果是一个空数组,而它应该是:max_idx = [10].

你对如何修改原始代码有什么建议吗?谢谢

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(2)
按点赞数排序
用户头像