Функция Numpy interp () возвращает одномерный кусочно-линейный интерполянт в функцию с заданными дискретными точками данных (xp, fp), оцененными в x.
np.interp
Функция np.interp () возвращает одномерную линейную интерполяцию. Функция interp () принимает пять аргументов: x, xp, fp, left, right, и period и возвращает float или complex (соответствует fp). или ndarray.
Функция Numpy interp () не проверяет, что последовательность x-координат xp увеличивается. Если xp не увеличивается, результаты бессмысленны. Простая проверка увеличения заключается в следующем.
np.all (np.diff (xp)> 0)
Давайте см. синтаксис функции interp ().
Синтаксис
numpy.interp (x, xp, fp, left = None, right = None, period = None)
Параметры
x : array_like
Координаты x, по которым оцениваются интерполированные значения.
xp : 1-мерная последовательность чисел с плавающей запятой
Если аргумент period не указан, координаты x точек данных должны быть увеличены . В противном случае xp внутренне сортируется после нормализации периодических границ с xp = xp% period .
fp : одномерная последовательность чисел с плавающей запятой или комплексных
Y-координаты точек данных, той же длины, что и xp .
left : необязательно с плавающей запятой или сложным, соответствующим
Возвращаемое значение для x
right : необязательное значение с плавающей запятой или комплексное значение, соответствующее
Возвращаемое значение для x> xp [-1], по умолчанию равно fp [-1].
период : нет или с плавающей точкой, необязательно
Период для координат x. Этот параметр позволяет правильно интерполировать угловые координаты x. Параметры left и right игнорируются, если указан период.
Возвращаемое значение
Функция возвращает float или complex (соответствует fp) или ndarray.
Вызывает исключение
Функция может вызывать исключение ValueError если xp и fp имеют разную длину. Если xp или fp не является одномерной последовательностью, если период == 0.
Пример интерп () function
См. следующий код.
# app.pyimport numpy as npxp = [11, 21, 31] fp = [31, 21, 0] interpol = np.interp (2.5, xp, fp) print (interpol)
Вывод
приложение python3 .py31.0
Теперь давайте построим интерполянт для синусоидальной функции.
Напишите следующий код внутри app.py файл.
# app. pyimport numpy как npimport matplotlib.pyplot as pltx = np.linspace (0, 2 * np.pi, 10) y = np.sin (x) xval = np.linspace (0, 2 * np.pi, 50) yinterp = np.interp (xval, x, y) plt.plot (x, y, 'o') plt.plot (xval, yinterp, '-x') plt.show ()
Вывод
Интерполяция с периодической координатой x в Python
См. следующий код.
# app.pyimport numpy as npx = [-180, -170, -185, 185, -10, -5, 0, 365] xp = [190, -190, 350, -350] fp = [5, 10, 3, 4] interpol = np.interp (x, xp, fp, period = 360) print (interpol)
Вывод
python3 app.py [7,5 5. 8,75 6,25 3. 3.25 3.5 3.75]
Комплексная интерполяция Numpy
Если вы не знаете комплексные числа, попробуйте Python complex ().
См. следующий код.
# app.pyimport numpy as npx = [1.5, 4.0] xp = [2, 3, 5] fp = [1.0j, 0, 2 + 3j] interpol = np.interp (x, xp, f p) print (interpol)
Вывод
python3 app.py [0. + 1.j 1. + 1.5j ]
Наконец, пример функции Numpy interp завершен.
См. также
Numpy argwhere ()
Numpy exp ()
Numpy fft ()