如何让scipy.interpolate给出超出输入范围的外推结果? |
您所在的位置:网站首页 › 超出扫码规定范围怎么处理的 › 如何让scipy.interpolate给出超出输入范围的外推结果? |
我正在尝试移植一个程序,它使用一个手卷插值器(由一位数学家学院开发)来使用scipy提供的插值器。我想使用或包装scipy插值器,以便它具有与旧插值器尽可能接近的行为。 这两个函数之间的一个关键区别是,在我们的原始内插器中-如果输入值高于或低于输入范围,我们的原始内插器将外推结果。如果您尝试使用scipy插值器执行此操作,则会引发ValueError。以下面的程序为例: 代码语言:javascript复制import numpy as np from scipy import interpolate x = np.arange(0,10) y = np.exp(-x/3.0) f = interpolate.interp1d(x, y) print f(9) print f(11) # Causes ValueError, because it's greater than max(x)有没有一种合理的方法使它不是崩溃,而是简单地进行线性外推,继续由第一个和最后两个点定义的梯度到无穷大。 请注意,在实际的软件中,我实际上并没有使用exp函数--这里只是为了说明! |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |