Extrapolar con interpolador lineal

Tengo un conjunto de datos en 3D que quiero interpolar Y extrapolar linealmente. La interpolación se puede hacer fácilmente conscipy.interpolate.LinearNDInterpolator. El módulo solo puede completar una constante / nan para valores fuera del rango del parámetro, pero no veo por qué no ofrecería una opción para activar la extrapolación.

Mirando el código, veo que el módulo está escrito en cython. Sin experiencia en cython, es difícil jugar con el código para implementar la extrapolación. Puedo escribirlo en código Python puro, pero tal vez alguien más tenga una mejor idea. Mi caso particular involucra una cuadrícula xy constante, pero los valores z siguen cambiando mucho (-100,000) y, por lo tanto, la interpolación debe ser rápida ya que la interpolación se ejecutará cada vez que cambien los valores z.

Para dar un ejemplo básico, según lo solicitado, digamos que tengo una cuadrícula como

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

y digamos que quiero calcular valores enx = -1.5, -0.8, +0.5 yy = -0.2, +0.2, +0.5. Actualmente, estoy realizando una interpolación / extrapolación 1d a lo largo del eje x para cada valor y, y luego a lo largo del eje y para cada valor x. La extrapolación se realiza mediante la segunda función enryggyr's answer.

Respuestas a la pregunta(2)

Su respuesta a la pregunta