Спасибо за пример кода!
я есть ndarray (Z) с 500000 элементов на прямоугольной сетке (X, Y).
Теперь я хочу интерполировать значения в примерно 100 местах в x, y, которые не обязательно находятся в сетке.
У меня есть код, работающий в Matlab:
data = interp2(X,Y,Z, x,y);
Однако, когда я пытаюсь использовать тот же подход с scipy.interpolate, я получаю различные ошибки в зависимости от метода. Например, interp2d не работает с MemoryError, если я укажуkind = 'linear'
и "OverflowError: слишком много точек данных для интерполяции", если я укажуkind='cubic'
, Я тоже пробовалRbf
а такжеbisplev
но они также терпят неудачу.
Таким образом, вопрос заключается в следующем: существует ли интерполяционная функция, которая допускает интерполяцию больших матриц? Есть ли другое решение проблемы? (Или я должен кодировать функцию, которая выбирает подходящую область вокруг точек для интерполяции и затем вызывает interp2d?)
Кроме того: как это сделать с комплексными числами?