NearestNDInterpolator#
- класс scipy.interpolate.NearestNDInterpolator(x, y, масштабировать=False, tree_options=None)[источник]#
Интерполятор ближайшего соседа в N > 1 измерениях.
- Параметры:
- x(npoints, ndims) 2-D ndarray из float
Координаты точек данных.
- y(npoints, ) 1-D ndarray из float или complex
Значения данных.
- масштабироватьлогический, необязательный
Масштабировать точки до единичного куба перед выполнением интерполяции. Это полезно, если некоторые из входных измерений имеют несоизмеримые единицы и различаются на много порядков величины.
Добавлено в версии 0.14.0.
- tree_optionsdict, optional
Опции, передаваемые в нижележащий
cKDTree.Добавлено в версии 0.17.0.
Методы
__call__(*args, **query_options)Вычислить интерполятор в заданных точках.
Смотрите также
griddataИнтерполяция неструктурированных D-D данных.
LinearNDInterpolatorКусочно-линейный интерполятор в N измерениях.
CloughTocher2DInterpolatorКусочно-кубический, C1-гладкий, минимизирующий кривизну интерполятор в 2D.
interpnИнтерполяция на регулярной или прямоугольной сетке.
RegularGridInterpolatorИнтерполятор на регулярной или прямоугольной сетке в произвольных размерностях (
interpnоборачивает этот класс).
Примечания
Использует
scipy.spatial.cKDTreeПримечание
Для данных на регулярной сетке используйте
interpnвместо этого.Примеры
Мы можем интерполировать значения на двумерной плоскости:
>>> from scipy.interpolate import NearestNDInterpolator >>> import numpy as np >>> import matplotlib.pyplot as plt >>> rng = np.random.default_rng() >>> x = rng.random(10) - 0.5 >>> y = rng.random(10) - 0.5 >>> z = np.hypot(x, y) >>> X = np.linspace(min(x), max(x)) >>> Y = np.linspace(min(y), max(y)) >>> X, Y = np.meshgrid(X, Y) # 2D grid for interpolation >>> interp = NearestNDInterpolator(list(zip(x, y)), z) >>> Z = interp(X, Y) >>> plt.pcolormesh(X, Y, Z, shading='auto') >>> plt.plot(x, y, "ok", label="input point") >>> plt.legend() >>> plt.colorbar() >>> plt.axis("equal") >>> plt.show()