Ошибка ввода данных с использованием interpolate.splrep - PullRequest
0 голосов
/ 09 апреля 2020

Я определил два массива:

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

Почему входные данные не верны? Где проблема?

1 Ответ

0 голосов
/ 11 апреля 2020

Добро пожаловать в переполнение стека!

Я не знаком с SciPy, но я посмотрел его документацию и описание функций scipy.interpolate.splrep(). Есть предложение, которое гласит:

Пользователь несет ответственность за то, чтобы значения x были уникальными. В противном случае, splrep не даст разумных результатов.

Но у вас есть много одинаковых значений в вашем массиве x. Может быть, поэтому у вас есть сообщение об ошибке?

...