Python 使用NumPy在其自身上插值曲线

Python 使用NumPy在其自身上插值曲线,python,numpy,interpolation,Python,Numpy,Interpolation,下面的曲线是两个数组,x和y的位置 想象一下,如果要绘制穿过每个点的垂直线,并在曲线上这些线与曲线相交的位置添加点。这就是我想要的 我曾尝试使用np.interp(x,x,y),但最终导致以下混乱: 我该怎么做?是否可以使用np.interp 这可能是应该在另一个问题中提出的问题,但我也希望在曲线自身交叉处添加点。根据规则,X值数组应该排序(或周期性),否则“结果是无意义的”。可以尝试将曲线分割为多个部分,然后在其他部分上插值每个部分。通过查看np.diff(x)更改符号的位置,可以找到正确

下面的曲线是两个数组,x和y的位置

想象一下,如果要绘制穿过每个点的垂直线,并在曲线上这些线与曲线相交的位置添加点。这就是我想要的

我曾尝试使用
np.interp(x,x,y)
,但最终导致以下混乱:

我该怎么做?是否可以使用
np.interp


这可能是应该在另一个问题中提出的问题,但我也希望在曲线自身交叉处添加点。

根据规则,X值数组应该排序(或周期性),否则“结果是无意义的”。可以尝试将曲线分割为多个部分,然后在其他部分上插值每个部分。通过查看
np.diff(x)
更改符号的位置,可以找到正确的拆分位置。

根据符号,x值的数组应该排序(或周期性),否则“结果是无意义的”。可以尝试将曲线分割为多个部分,然后在其他部分上插值每个部分。通过查看where
np.diff(x)
changes sign,您可以找到正确的拆分位置。

您需要添加另一列来描述x和y与另一维度的关系。例如,如果图形上的每个点都可以引用到一个时间,则可以尝试3项非线性最小二乘法或径向基函数。这些功能都可以在SciPy中使用。如果您可以发布生成图表的代码,那么也许我可以向您展示如何使用这些方法。您需要添加另一列来描述x和y与另一维度的关系。例如,如果图形上的每个点都可以引用到一个时间,则可以尝试3项非线性最小二乘法或径向基函数。这些功能都可以在SciPy中使用。如果您可以发布生成图表的代码,那么也许我可以向您展示如何使用这些方法。