首页 > 解决方案 > scipy ver 0.18 scipy.interpolate.UnivariateSpline 如何处理不严格增加的值?

问题描述

我有一个用 python 2.7.5 scipy 0.18.1 编写的程序,它能够使用非顺序数组运行 scipy.interpolate.UnivariateSpline。当我尝试在 python 2.7.14 / scipy 1.0.0 中运行相同的程序时,出现以下错误:

文件“/usr/local/lib/python2.7/site-packages/scipy/interpolate/fitpack2.py”,第 176 行,在init中 引发 ValueError('x 必须严格增加')

通常我会修复数组以删除非顺序值。但在这种情况下,我需要重现由早期版本的 python/scipy 生成的完全相同的解决方案。谁能告诉我早期的代码如何处理值不连续的情况?

标签: pythonscipyversioninterpolation

解决方案


IIRC 这就是 FITPACK(univariatespline 类包装的 fortran 库)正在做的事情。因此,第一站是从本地 scipy 安装中删除检查,看看这是否有效


推荐阅读