x是一个list,图形的纵坐标是x中的值,横坐标是自然数,用plt函数画出来,假设图形如下,我想找到这个图形中所有阶段低点(类似连续函数里的拐点):a,b点。不知道如何实现。Help me
补充:不是求整个列表的最低点,是找阶段的阶段低点,阶段不确定的。在图形上能看到
python找到list中的最低点
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
关注 题主的意思就是找到曲线上的全部驻点,也就是导数为0点。如果题主的数据可以通过回归算法找到函数表达式,则可以通过求导找出所有的驻点;如果数据不能或者难以通过回归算法找打函数表达式,也可以通过比较相邻数据点的增量找到驻点。下面的代码,用一组正弦数据演示了这个方法。
>>> import numpy as np >>> import matplotlib.pyplot as plt >>> x = np.linspace(0,8*np.pi,100) # 在4个周期内等间隔取100个点 >>> y = np.sin(x) # 生成正弦曲线上100个点的值 >>> plt.plot(x,y) # 曲线如下图所示 [<matplotlib.lines.Line2D object at 0x0000020702BD0D08>] >>> plt.show() >>> d = np.absolute(np.diff(y)) # 相邻点取差的绝对值 >>> i = np.argsort(d) # 索引序号排序 >>> x[i[:8]] # 4个周期有8个驻点 array([ 4.56958931, 20.30928584, 10.91624114, 13.96263402, 1.52319644, 23.35567872, 17.26289297, 7.61598219]) >>> y[i[:8]] # 如果只需要导数从负变正的驻点,那就遍历这8个点,比较其前后值即可 array([-0.98982144, 0.99383846, -0.99685478, 0.98480775, 0.99886734, -0.97880245, -0.99987413, 0.97181157])
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 请问各位,如何在Jetson nano主控板的Ubuntu系统中安装PyQt5
- ¥15 MAC安装佳能LBP2900驱动的网盘提取码
- ¥400 微信停车小程序谁懂的来
- ¥15 ATAC测序到底用什么peak文件做Diffbind差异分析
- ¥15 安装ubantu过程中第一个vfat 文件挂载失败
- ¥20 GZ::CTF如何兼容一些靶机?
- ¥15 etcd集群部署问题
- ¥20 谁可以帮我一下问一下各位
- ¥15 为何重叠加权后love图的SMD与svyCreateTableOne函数绘制基线表的不一致
- ¥150 求 《小魔指》街机游戏机整合模拟软件