Я не могу заставить scipy.interpolate.splrep работать с периодическими точками данных... Я думаю, что я не обрабатываю параметр "per" правильно. До сих пор я работаю с этим кодом:
from scipy.interpolate import splrep
import numpy as np
x = np.concatenate((np.linspace(-180, 180, 720),np.linspace(180, -180, 720)))
y = np.concatenate((np.linspace(-180, 180, 720),np.linspace(-180, 180, 720)))
spl = splrep(x, y, per=True)
Но он не работает, поднимает "Ошибка на входных данных",
Как указано в документации, точки данных x
и y
должны определять кривую y = f (x). Это означает: для каждой точки в x
должна быть ровно одна точка в y
.
Возьмите, к примеру, эти данные sin(x)
:
Каждая точка в x
имеет ровно одну точку в y
, а 1d splinefit работает хорошо.
Теперь возьмите (что-то вроде) ваши предлагаемые данные в сравнении:
Каждая точка в x
появляется два раза и, что еще хуже, с двумя разными значениями в y
. Поэтому эти данные недействительны.