__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])