我定义了两个数组:
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
为什么输入数据不正确?问题出在哪里?
欢迎使用堆栈溢出!
我对SciPy不熟悉,但是我去看了它的文档及其对功能scipy.interpolate.splrep()
的描述。有一句话说:
用户有责任确保x的值唯一。否则,splrep将不会返回明智的结果。
但是您的scipy.interpolate.splrep()
数组中有许多相同的值。也许这就是为什么您有一条错误消息?