scipy.optimize.curve_fit 3d

# The first argument to func must be the data (both x and y).
# The rest of the arguments to func represent the parameters.

# The first argument to curve_fit is the function.
# The second argument is the independent data (x and y in the form of one array).
# The third argument is the dependent data (z).
# The fourth argument is a guess for the value of the parameters (a and b in this case.)

import scipy.optimize as optimize
import numpy as np

A = np.array([(19,20,24), (10,40,28), (10,50,31)])

def func(data, a, b):
    return data[:,0]*data[:,1]*a + b

guess = (1,1)
params, pcov = optimize.curve_fit(func, A[:,:2], A[:,2], guess)
print(params)
# [ 0.04919355  6.67741935]
Good Grebe