Python numpy插值给出错误的输出

问题描述 投票:1回答:1

我有一个输入和输出数组。我在情节下面给出了。我想在x = 0处插值。我原本期望大约为16.7,但峰值为17.4881。怎么了

数据:

enter image description here

我的代码:

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
python numpy interpolation
1个回答
3
投票

[如果您查看interp function documentation,它说的是

如果未指定参数周期,则数据点的x坐标必须增加。否则,在用xp = xp%period对周期边界进行归一化之后,对xp进行内部排序。

但是您的xdata是降序排列的,因此您需要在xdataydata中颠倒顺序>

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
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.