Когда интерполяционные линейно с scipy.interpolate.interp1d
я сталкиваюсь следующее поведение:Scipys interp1d и бесконечности
from scipy.interpolate import interp1d
import numpy as np
x = [0,1,2,3,4]
y = [np.inf, 10, 12, 11, 9]
interpolated_function = interp1d(x,y)
Теперь, конечно, интерполяция не в четко определенные [0,1)
, но в 1
я бы ожидать, что это будет определенно. Однако:
In[2]: interpolated_function(1.)
C:\WinPython27\python-2.7.10\lib\site-packages\
scipy\interpolate\interpolate.py:469:
RuntimeWarning: invalid value encountered in add
y_new = slope*(x_new - x_lo)[:, None] + y_lo
Out[2]: array(nan)
In[3]: interpolated_function(1.000000000000001)
Out[3]: array(10.000000000000002)
Ожидается ли такое поведение? Не следует ли интерпретировать интерполированную функцию при 1
как 10
, так как это вполне допустимый дататоп, переданный interp1d
?
Спасибо! К сожалению, я не могу удалить бесконечные бесконечности из-за несвязанных причин. – stebu92