我有一个输入和输出数组。我在情节下面给出了。我想在x = 0处插值。我原本期望大约为16.7,但峰值为17.4881。怎么了
数据:
我的代码:
xdata = [0.101,-0.008,-0.111,-0.209,-0.303]
ydata = [16.5241,16.7987,17.0499,17.2793,17.4885]
xp = np.interp(0,xdata,ydata)
print(xp)
当前输出:
17.4885
预期输出:
16.7 # around from plot
[如果您查看interp function documentation,它说的是
如果未指定参数周期,则数据点的x坐标必须增加。否则,在用xp = xp%period对周期边界进行归一化之后,对xp进行内部排序。
但是您的xdata是降序排列的,因此您需要在xdata
和ydata
中颠倒顺序>
import numpy as np
xdata = [0.101,-0.008,-0.111,-0.209,-0.303][::-1]
ydata = [16.5241,16.7987,17.0499,17.2793,17.4885][::-1]
xp = np.interp(0,xdata,ydata)
print(xp)
# 16.778545871559633