是否有 Python 函数或方法来定位绘图的第一个肘部?

Is there a Python function or methodology for locating the first elbow of a plot?

提问人:Andrea 提问时间:6/3/2021 更新时间:1/18/2022 访问量:119

问:

我有一种情况,我需要找到数据中出现“肘部”(或向后“L”)的第一个 x 值。例如,我在图上画了一个箭头来表示我的意思:

enter image description here

在 Python 中找到它的最快方法是什么?有这个功能吗?

python numpy matplotlib scipy plotly

评论

2赞 Nelewout 6/3/2021
你可以用find_peaks碰碰运气,应用于数据的第一个差异(提示:这近似于什么?或者,这可能会有所帮助,但似乎假设一个单调递增/递减函数。
4赞 JohanC 6/3/2021
请注意,仅绘图并不是代码中可用的万无一失的定义。首先,你可能想研究一个好的数学定义,你需要什么。

答:

1赞 Gustavo Alves 1/18/2022 #1

例如,您可以使用 numpu 函数梯度计算数据的一阶导数。

假设您的数据存储在变量 numpy 变量 'x' 中,因此使用 np.gradient(x) 计算一阶导数。基本上,导数计算函数的变化率。

有了这个,你可以指定导数的公差,随着函数的增长,你可以检查梯度大于公差的地方(一些大的数字)。

Ps:要真正理解它,你必须对微积分有所了解,所以我鼓励你搜索一些关于函数导数的东西。