【问题标题】:Python Scipy interpolate warning messagePython Scipy 插入警告消息
【发布时间】:2017-11-15 22:20:31
【问题描述】:

我正在尝试使用 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:\Users...\AppData\Local\Continuum\Anaconda3\lib\site-packages\scipy\interpolate_fitpack_impl.py:975: RuntimeWarning:找到一个理论上不可能的结果 fp = s 的平滑样条曲线。可能的原因: s 太小或严重 选择每股收益。 (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:\Users...\AppData\Local\Continuum\Anaconda3\lib\site-packages\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:\Users...\AppData\Local\Continuum\Anaconda3\lib\site-packages\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))

而不是得到类似于我的数据的东西:

我收到了这个:

我承认我不知道警告信息的含义,也没有在互联网上找到任何东西。

【问题讨论】:

    标签: python scipy


    【解决方案1】:

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

    我在scipy.interpolate.Rbf 上取得了更大的成功,结果也非常顺利。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-08
      • 1970-01-01
      • 1970-01-01
      • 2016-02-25
      • 1970-01-01
      • 2020-10-18
      • 2021-01-19
      • 1970-01-01
      相关资源
      最近更新 更多