Функция interp
Функция interp выполняет одномерную линейную интерполяцию. Первым параметром функция принимает массив точек (x), для которых нужно вычислить значения. Вторым параметром - массив опорных точек (xp). Третьим параметром - массив значений (fp) в опорных точках. Четвертым параметром можно указать левое граничное значение (left), пятым - правое граничное значение (right). Функция возвращает массив интерполированных значений.
Синтаксис
np.interp(x, xp, fp, [left], [right])
Пример
Выполним линейную интерполяцию для одной точки:
import numpy as np
xp = np.array([0, 1, 2, 3, 4])
fp = np.array([0, 2, 4, 6, 8])
res = np.interp(2.5, xp, fp)
print(res)
Результат выполнения кода:
5.0
Пример
Выполним интерполяцию для массива точек:
import numpy as np
xp = np.array([0, 1, 2, 3, 4, 5])
fp = np.array([0, 1, 4, 9, 16, 25])
x = np.array([0.5, 1.5, 2.5, 3.5, 4.5])
res = np.interp(x, xp, fp)
print(res)
Результат выполнения кода:
[ 0.5 2.5 6.5 12.5 20.5]
Пример
Использование граничных значений при экстраполяции:
import numpy as np
xp = np.array([0, 1, 2, 3])
fp = np.array([0, 10, 20, 30])
x = np.array([-1, 0.5, 2.5, 4])
res = np.interp(x, xp, fp, left=-100, right=100)
print(res)
Результат выполнения кода:
[-100. 5. 25. 100.]
Пример
Выполним интерполяцию для нерегулярной сетки опорных точек:
import numpy as np
xp = np.array([0, 1, 3, 4, 7])
fp = np.array([0, 5, 15, 20, 35])
x = np.array([0.5, 2, 3.5, 5, 6])
res = np.interp(x, xp, fp)
print(res)
Результат выполнения кода:
[ 2.5 10. 17.5 25. 30. ]