Python Scipy插入警告消息

时间:2017-06-23 21:13:01

标签: python scipy

我正在尝试使用scipy interpolate

将样条曲面拟合到某些2D数据
from scipy import interpolate

使用

 # fit spline to surface
 xnew, ynew = np.mgrid[x[0]:x[-1]:100j, y[0]:y[-1]:100j]
 tck = interpolate.bisplrep(X, Z, array)
 znew = interpolate.bisplev(xnew[:,0], ynew[0,:], tck)

但我收到以下警告信息:

  

C:\用户\应用程序数据\本地\连续\ Anaconda3 \ LIB \站点包\ SciPy的\ interpolate_fitpack_impl.py:975:   RuntimeWarning:找到一个理论上不可能的结果   使用fp = s平滑样条曲线。可能的原因:太小或太糟糕   选择eps。 (ABS(FP-S)/s>0.001)           kx,ky = 3,3 nx,ny = 16,18 m = 610 fp = 18417275715.663498 s = 575.071502 warnings.warn(RuntimeWarning(_iermess2 [ierm] [0] + _mess))   C:\用户\应用程序数据\本地\连续\ Anaconda3 \ LIB \站点包\ SciPy的\ interpolate_fitpack_impl.py:975:   RuntimeWarning:所需的存储空间超出可用空间   储存空间。可能的原因:nxest或nyest太小或s也是   小。 (FP> S)           kx,ky = 3,3 nx,ny = 20,20 m = 610 fp = 661.198585 s = 575.071502 warnings.warn(RuntimeWarning(_iermess2 [ierm] [0] + _mess))   C:\用户\应用程序数据\本地\连续\ Anaconda3 \ LIB \站点包\ SciPy的\ interpolate_fitpack_impl.py:975:   RuntimeWarning:所需的存储空间超出可用空间   储存空间。可能的原因:nxest或nyest太小或s也是   小。 (FP> S)           kx,ky = 3,3 nx,ny = 20,20 m = 610 fp = 1013.605606 s = 575.071502 warnings.warn(RuntimeWarning(_iermess2 [ierm] [0] + _mess))

而不是获得与我的数据类似的东西: sample data

我收到了这个:spline output

我承认我不知道警告信息是什么意思,也没有在网上找到任何东西。

1 个答案:

答案 0 :(得分:0)

好像你的输入数据包含的数据点太少了?另一个问题可能是您的xy轴具有非常不同的数量级。我不知道这是bisplrep的问题,但其他插值算法不喜欢这样。

我在scipy.interpolate.Rbf取得了更多成功,这也给出了非常顺利的结果。