Я пытаюсь получить гладкую многомерную кривую путем интерполяции случайного массива в Scipy, используя interpolate.splprep
и interpolate.splev
. Проблема отличается от этого вопроса , поскольку у меня нет последовательных повторяющихся точек. Вот код:
N = npr.rand(10,3)
tck, u = splprep(N.T)
u_new = np.linspace(0,1,1/100)
out = splev(u_new, tck)
Сципи выдает эту ошибку:
ValueError Traceback (most recent call last)
<ipython-input-103-61bf6eb7e435> in <module>
2 tck, u = splprep(N.T)
3 u_new = np.linspace(0,1,1/100)
----> 4 out = splev(u_new, tck)
c:\programdata\anaconda3\envs\stim\lib\site-packages\scipy\interpolate\fitpack.py in splev(x, tck, der, ext)
366 return tck(x, der, extrapolate=extrapolate)
367 else:
--> 368 return _impl.splev(x, tck, der, ext)
369
370
c:\programdata\anaconda3\envs\stim\lib\site-packages\scipy\interpolate\_fitpack_impl.py in splev(x, tck, der, ext)
586 if parametric:
587 return list(map(lambda c, x=x, t=t, k=k, der=der:
--> 588 splev(x, [t, c, k], der, ext), c))
589 else:
590 if not (0 <= der <= k):
c:\programdata\anaconda3\envs\stim\lib\site-packages\scipy\interpolate\_fitpack_impl.py in <lambda>(c, x, t, k, der)
586 if parametric:
587 return list(map(lambda c, x=x, t=t, k=k, der=der:
--> 588 splev(x, [t, c, k], der, ext), c))
589 else:
590 if not (0 <= der <= k):
c:\programdata\anaconda3\envs\stim\lib\site-packages\scipy\interpolate\_fitpack_impl.py in splev(x, tck, der, ext)
599
600 if ier == 10:
--> 601 raise ValueError("Invalid input data")
602 if ier == 1:
603 raise ValueError("Found x value not in the domain")
ValueError: Invalid input data