Я нашел решение:
import numpy as np
from scipy.interpolate import griddata
def interpolate(corners, n):
grid_x, grid_y = np.mgrid[0:n:1, 0:n:1]
points = [[0, 0], [0, n-1], [n-1, 0], [n-1, n-1]]
return griddata(points, corners, (grid_x, grid_y), method='linear')
corners = [-60, -2, 140, 6]
interpolate(corners, 3)
И результат не совсем то, что я ожидал для средней точки, но он имеет смысл, поскольку интерполируется по диагонали:
array([[-60., -31., -2.],
[ 40., -27., 2.],
[140., 73., 6.]])