python-3.x - 使用 interpolate.splrep 输入数据错误
问题描述
我定义了两个数组:
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 不熟悉,但我去看了它的文档和对 function 的描述scipy.interpolate.splrep()
。有一句话说:
用户负责确保 x 的值是唯一的。否则, splrep 将不会返回合理的结果。
但是您的x
数组中有许多相同的值。也许这就是您收到错误消息的原因?
推荐阅读
- javascript - 带有键和生成器的 ES6
- python - 未定义令牌名称“app”。烧瓶
- django - Django在使用ADMINS时以纯文本形式发送用户密码
- scala - 在 apache spark 生产场景中处理 Skew 数据
- android - 设置应用级代理
- javascript - 为所有组件 React-Native 不设置标题
- c++ - 如何将二维数组转换为 svg 或 png 格式的数独图像?
- sublimetext3 - 每个逻辑行开头的多项选择
- php - preg_match 显示来自其他 php/html 文件的第一张图片
- php - 在提供者本身内部绑定 Laravel 服务提供者的依赖关系?