scipy LinearNDInterpolator返回的异常nans

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scipy LinearNDInterpolator返回的异常nans相关的知识,希望对你有一定的参考价值。

我正在尝试使用上述scipy函数(official documentation here; source code here)用python(3.8.1)内插以下数据。官方文档非常稀疏,所以我希望那里的其他人将对使用该功能有一定的经验,并且可能知道此问题的根源。具体来说,我运行以下四行代码:

    predictor = [[-1.7134013337139833, 0.9582376963057636, -0.21528572746395735], [3.25933089248862, -0.7087236333980123, 0.012808817274351122], [-0.5596739049487544, -1.8723369742231246, 0.03114189522349198], [0.23080764211370225, 1.0639221305852422, -0.602148693975945], [-0.9879484423429669, -0.16678510825693527, 0.5570132252912631], [0.0029439785978213986, -0.10016927713200409, -0.18197412051828055], [0.3530872261969887, 0.6347161018351574, 0.7285361235605389], [-1.122894723267098, 0.22837861478723648, -0.9022469946784363], [-0.02862856314533664, 0.014623415207400122, 3.078346263312741], [-1.3367570531570616, -0.3218239542354167, 0.489878302042675]]
    respose = [0.020235605909933625, 1.4729016163456679e-05, 0.021931080605237303, 0.21271851410989498, 0.26870984350693583, 0.9577608837143238, 0.3470452852299319, 0.11918254249689647, 7.657429164576589e-05, 0.1187813551565562]
    from scipy.interpolate import LinearNDInterpolator
    away = LinearNDInterpolator(predictor, response)

现在,如果我写away.__call__([0,0,0])[0],则python返回0.8208492283847619,这是期望的结果,并且是基于给定测试数据的合理值。类似地,away.__call__([0,0,1])[0]返回也是一个合理值的0.22018657078617598。但是,away.__call__([0,1,1])[0]返回nan发生了什么变化?有人碰巧知道吗?

谢谢。

答案

[当away.__call__(x)传递到x之外的值convex hull时发生-本质上,当x处于插值区域之外时。

以上是关于scipy LinearNDInterpolator返回的异常nans的主要内容,如果未能解决你的问题,请参考以下文章

SciPy 插值

SciPy 科学计算基础

解决scipy安装(pip install scipy)失败,以及其他问题

Python------SciPy模块

如何查看 scipy 的版本

scipy.optimize.fmin和scipy.optimize.minimize之间的区别