Numpy interp: как найти Interpolant в примере Python

Функция 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 ()

Оцените статью
nanomode.ru
Добавить комментарий