python-查找不被零包围的元素的局部极大值索引
发布时间:2022-05-18 21:48:40 226
相关标签: # 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]
.
你对如何修改原始代码有什么建议吗?谢谢
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报