Спасибо за пример кода!

я есть 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?)

Кроме того: как это сделать с комплексными числами?

Ответы на вопрос(2)

Ваш ответ на вопрос