【发布时间】:2018-09-08 16:54:51
【问题描述】:
所以我正在做我的任务,我们需要使用插值(线性插值)来做同样的事情。我们被要求使用来自scipy.interpolate 的interp1d 包,并使用它来生成新的y 值给定新的x 值和旧坐标(x1,y1) 和(x2,y2)。
为了获得新的x 坐标(我们称之为x_new),我在(x1,x2) 和新的y 坐标之间使用了np.linspace(我们称之为y_new)我发现在@987654334 上使用interp1d 函数@。
但是,我也注意到在 (y1,y2) 上应用 np.linspace 会生成与 interp1d 上的 x_new 完全相同的 y_new 值。
谁能给我解释一下为什么会这样?如果这是真的,它总是真的吗?
如果这总是正确的,为什么我们在可以使用 np.linspace 的位置时还需要使用 interp1d 函数?
这是我写的代码:
import scipy.interpolate as ip
import numpy as np
x = [-1.5, 2.23]
y = [0.1, -11]
x_new = np.linspace(start=x[0], stop=x[-1], num=10)
print(x_new)
y_new = np.linspace(start=y[0], stop=y[-1], num=10)
print(y_new)
f = ip.interp1d(x, y)
y_new2 = f(x_new)
print(y_new2) # y_new2 values always the same as y_new
【问题讨论】:
标签: python numpy scipy interpolation