Экстраполировать с помощью LinearNDInterpolator

У меня есть 3D-набор данных, который я хочу интерполировать И экстраполировать линейно. Интерполяция может быть легко сделана сscipy.interpolate.LinearNDInterpolator, Модуль может заполнять только константу / nan для значений вне диапазона параметров, но я неЯ не понимаю, почему он не предлагает возможность включить экстраполяцию.

Глядя на код, я вижу, что модуль написан на Cython. Без опыта работы с Cython сложно поиграться с кодом для реализации экстраполяции. Я могу написать это в чистом коде на Python, но, может быть, у кого-то еще есть идея получше? В моем конкретном случае используется постоянная сетка xy, но значения z постоянно меняются (-100 000), и поэтому интерполяция должна быть быстрой, так как интерполяция будет выполняться каждый раз, когда меняются значения z.

Чтобы дать базовый пример, как требуется, скажем, что у меня есть сетка, как

xyPairs = [[-1.0, 0.0], [-1.0, 4.0],
           [-0.5, 0.0], [-0.5, 4.0],
           [-0.3, 0.0], [-0.3, 4.0],
           [+0.0, 0.0], [+0.0, 4.0],
           [+0.2, 0.0], [+0.2, 4.0]]

и скажем, я хочу рассчитать значения вx = -1.5, -0.8, +0.5 а такжеy = -0.2, +0.2, +0.5, В настоящее время я выполняю 1d интерполяцию / экстраполяцию вдоль оси x для каждого значения y, а затем вдоль оси y для каждого значения x. Экстраполяция выполняется второй функцией в.ryggyr's answer

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

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