使用interpolate.splrep输入数据错误

问题描述 投票:0回答:1

我定义了两个数组:

x = array([ 0. , 50. , 55.5, 57.5, 55.5, 50. ,  0. ])
y = array([ 2.5,  2.5,  4.7, 10. , 15.3, 17.5, 17.5])

然后我用命令插入:

import numpy as np
from scipy import interpolate
tck = interpolate.splrep(x, y)

这会给我错误信息:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3/dist-packages/scipy/interpolate/fitpack.py", line 289, in splrep
res = _impl.splrep(x, y, w, xb, xe, k, task, s, t, full_output, per, quiet)
File "/usr/lib/python3/dist-packages/scipy/interpolate/_fitpack_impl.py", line 515, in splrep
raise _iermess[ier][1](_iermess[ier][0])
ValueError: Error on input data

为什么输入数据不正确?问题出在哪里?

python-3.x interpolation spline
1个回答
0
投票

欢迎使用堆栈溢出!

我对SciPy不熟悉,但是我去看了它的文档及其对功能scipy.interpolate.splrep()的描述。有一句话说:

用户有责任确保x的值唯一。否则,splrep将不会返回明智的结果。

但是您的scipy.interpolate.splrep()数组中有许多相同的值。也许这就是为什么您有一条错误消息?

© www.soinside.com 2019 - 2024. All rights reserved.