python-3.x - 找到数字序列顶部或底部的点
问题描述
我有这样的问题,我想写一段代码来解决这个问题。
- 像这样的序列:
[1,2,3,2], [1,3,2], [1,3,2,1]
-> 我想输出 3(最大值),因为序列增加到 3,然后再次减小 - 像
[3,2,1,2], [3,1,2], [3,1,2,3]
-> 我想输出 1(最小值)这样的序列,因为序列减少到 1,然后再次增加
关于如何自动执行此操作的任何想法?
解决方案
尝试获取局部最大值和/或局部最小值:
import numpy as np
from scipy.signal import argrelextrema
a = np.array([3,2,1,3])
res=a[np.hstack([argrelextrema(a, np.greater),argrelextrema(a, np.less)]).ravel()]
这将返回局部最大值和最小值。如果它更适合您的用例,您可以以某种方式单独标记它们。根据您的问题,我认为它可能只是一个极值。另外-根据您的数据,您可能会考虑分别使用np.less_equal
ornp.greater_equal
代替np.less
or np.greater
。
推荐阅读
- python - SqlAlchemy 检测列表删除
- javascript - 如何隐藏多个元素并仅显示每个容器中的一项
- delphi - 如何阻止 GLScene GLSceneViewer 组件使 Delphi 10.3 IDE 崩溃?
- c# - 如果元素没有显示在页面上,请不要单击它
- windows - ssh 批处理脚本窗口:无法发送我的命令
- tensorflow - 如何在张量板上显示潜在层?
- infopath - Microsoft Edge 是否支持 InfoPath 表单
- reactjs - 使用 React 完整注册/登录/帐户网站的 Supabase
- java - 参数、方法和输入
- javascript - 如何为对象添加价格