gpt4 book ai didi

python - Numpy interp 不对值进行插值/外推,仅查找数据点是否高于或低于最大经验值

转载 作者:太空宇宙 更新时间:2023-11-03 18:59:14 29 4
gpt4 key购买 nike

我有以下经验数据:

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]])

我想根据类似于第二列的新数据点从该数据中插入或推断一个值。例如-38。如果我尝试插入该值 interp 返回 6.5。

numpy.interp(-38, emp_data[:,1], emp_data[:,0])
Out[65]: 6.5

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

谢谢

最佳答案

借助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) 的根。

关于python - Numpy interp 不对值进行插值/外推,仅查找数据点是否高于或低于最大经验值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16436705/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com