Я также не могу сказать, какую библиотеку вы используете, и детали того, как это сделать, вероятно, зависят от деталей того, как эта библиотека хранит подогнанные значения.Я могу сказать, что для lmfit (https://lmfit.github.io/lmfit-py/) мы боролись с такого рода использованием и пришли к дизайну, который делает то, что вы пытаетесь сделать, довольно простым. С lmfit вы можете решить эту проблему следующим образом:
import numpy as np
from lmfit import GaussianModel
x = np.linspace(-50,50,100)
# get Data_Array from somewhere....
# create a model for a Gaussian
Gauss_Model = GaussianModel()
# make a set of parameters, setting initial values
params = Gauss_Model.make_params(amplitude=1000, center=0, sigma=1.0)
Fit_Results = []
for i in range(Data_Array.shape[1]):
result = Gauss_Model.fit(Data_Array[:, i], params, x=x)
Fit_Results.append(result)
# update `params` with the current best fit params for the next column
params = result.params
Обратите внимание, что это работает, потому что lmfit тщательно следит за тем, чтобы Model.fit()
не изменил входные параметры и поместил результирующие параметры наилучшего соответствия для каждого соответствия в result.params
.
И, еслиВы решаете, что хотите, чтобы все столбцы использовали исходные начальные значения, просто закомментируйте, что в последнем params = result.params
.
Lmfit гораздо больше наворотов, но я надеюсь, что это поможет вам сделать то, что вам нужно.