scipy.interpolate.RegularGridInterpolator.

__call__#

RegularGridInterpolator.__call__(xi, метод=None, *, nu=None)[источник]#

Интерполяция по координатам.

Параметры:
xindarray формы (…, ndim)

Координаты для вычисления интерполятора.

методstr, optional

Метод интерполяции для выполнения. Поддерживаются "linear", "nearest", "slinear", "cubic", "quintic" и "pchip". По умолчанию используется метод, выбранный при создании интерполятора.

nuпоследовательность целых чисел, длина ndim, опционально

Если не None, порядки производных для вычисления. Каждая запись должна быть неотрицательной. Допускается только для методов “slinear”, “cubic” и “quintic”.

Добавлено в версии 1.13.

Возвращает:
values_xndarray, форма xi.shape[:-1] + values.shape[ndim:]

Интерполированные значения в xi. См. примечания о поведении при xi.ndim == 1.

Примечания

В случае, если xi.ndim == 1 новая ось вставляется в позицию 0 возвращаемого массива values_x, поэтому его форма становится (1,) + values.shape[ndim:].

Примеры

Здесь мы определяем интерполятор ближайшего соседа для простой функции

>>> import numpy as np
>>> x, y = np.array([0, 1, 2]), np.array([1, 3, 7])
>>> def f(x, y):
...     return x**2 + y**2
>>> data = f(*np.meshgrid(x, y, indexing='ij', sparse=True))
>>> from scipy.interpolate import RegularGridInterpolator
>>> interp = RegularGridInterpolator((x, y), data, method='nearest')

По построению интерполятор использует интерполяцию ближайшего соседа

>>> interp([[1.5, 1.3], [0.3, 4.5]])
array([2., 9.])

Однако мы можем вычислить линейный интерполянт, переопределив метод параметр

>>> interp([[1.5, 1.3], [0.3, 4.5]], method='linear')
array([ 4.7, 24.3])