繁体   English   中英

Python numpy 插值给出错误的输出

[英]Python numpy interpolation gives wrong output

我有一个输入和输出数组。 我已经给出了下面的情节。 我想在 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 函数文档,它会说

如果未指定参数周期,则数据点的 x 坐标必须增加。 否则,在使用 xp = xp % 周期对周期性边界进行归一化后,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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM