Numpy INTP不插值/外推值,仅发现数据点是否高于或低于最大经验值

2024-04-26 14:54:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下经验数据:

emp_data = np.array([[0.5, -24.111869188789498],
[1.0, -30.166986253668671],
[1.5, -33.310250723584765],
[2.0, -35.629672538473848],
[2.5, -39.416821042883605],
[3.0, -41.05367278405226],
[3.5, -42.702793174115918],
[3.653, -41.173808136289971],
[4.0, -45.327195234249011],
[4.5, -47.170664776211105],
[5.0, -45.838914309065679],
[5.5, -47.83778613822286],
[6.0, -49.55982614930786],
[6.5, -48.899619370977753]])

我想根据类似于第二列的新数据点,从这个数据中插值或外推一个值。eg-38。如果我尝试插值这个值,interp返回6.5。在

^{pr2}$

numpy interp对于低于-48.89(业务数据中的最大值)的任何值返回6.5,对于高于-48.89的任何值,返回0.5。有人知道为什么吗?在

谢谢


Tags: 数据numpydatanp经验业务array插值
1条回答
网友
1楼 · 发布于 2024-04-26 14:54:08

numpy.interp的帮助下

Does not check that the x-coordinate sequence xp is increasing. If xp is not increasing, the results are nonsense. A simple check for increasingness is::

np.all(np.diff(xp) > 0)

看起来你把横坐标,即x值,和纵坐标,即f(x)或y值弄混了。在

所以,如果你想自动找到x值,其中f(x)=-38,你需要的不仅仅是插值。例如,您可以将一个多项式p(x)拟合到数据中,然后寻找p(x)-(-38)的根。在

相关问题 更多 >