如何在 python 中做一个简单的 'model fitting'?

How to do a simple 'model fitting' in python?

假设我有三个数据集x, y, z

我想拟合一个简单的模型:A*x + B*y + C = z(A、B、C 是常量。)

我如何在 Python 中做到这一点?

我找到了 scipy.optimize.curve_fit。但是,它似乎只能采用一个变量:curve_fit(f, xdata, ydata[, p0, sigma]),适合 f(x) = y。我需要的是 f(x, y)=z.

在 Mathematica 中,NonLinearModelFit 可以完成这项工作。我想知道 Python 中是否有我错过的类似模块。

docs表明scipy.optimize.curve_fit确实可以满足您的需求。特别是:

xdata : An M-length sequence or an (k,M)-shaped array

for functions with k predictors. The independent variable where the data is measured.

ydata : M 长度序列

The dependent data — nominally f(xdata, ...)

如果您的自变量当前是单独的数组,您可以将它们与 np.vstack:

组合
scipy.optimize.curve_fit(f, np.vstack(x, y), z)