使用脚本:
from scipy.optimize import curve_fit
import scipy.stats
from scipy import asarray as ar,exp
xdata = xvalues
ydata = yvalues
fittedParameters = numpy.polyfit(xdata, ydata + .00001005 , 3)
modelPredictions = numpy.polyval(fittedParameters, xdata)
axes.plot(xdata, ydata, '-')
xModel = numpy.linspace(min(xdata), max(xdata))
yModel = numpy.polyval(fittedParameters, xModel)
axes.plot(xModel, yModel)
Run Code Online (Sandbox Code Playgroud)
我想从 3.4 到 3.55 um 中排除该区域。我怎么能在我的脚本中做到这一点?此外,我试图在原始 .fits 文件中删除 NaN。帮助将受到重视。
我正在使用 lmfit 将我的数据拟合为高斯分布。我试图完成三件事:1)了解如何在 lmfit 中计算误差 2)如何在 lmfit 中包含我自己计算的误差 3)如何在拟合中绘制误差
def gaussian(x, amp, cen, fwhm):
return + amp * np.exp(-(x - cen) ** 2 / (2 * (fwhm / 2.35482) ** 2))
def gaussian_fit(x,y,guess=[1,0,0,5],varies=[True,True,True,True]):
c = 299792458 #m/s
gmod = Model(gaussian)
gmod.nan_policy = 'omit'
#x,y - your dataset to fit, with x and y values
print (np.max(y))
gmod.set_param_hint('amp', value=guess[0],vary=varies[0])
gmod.set_param_hint('cen', value=guess[1],vary=varies[1])
gmod.set_param_hint('fwhm', value=guess[2],vary=varies[2])
gmod.make_params()
result = gmod.fit(y,x=x,amp=guess[0], cen=guess[1], fwhm=guess[2])
amp = result.best_values['amp']
cen = result.best_values['cen']
fwhm = result.best_values['fwhm']
#level = result.best_values['level'] …Run Code Online (Sandbox Code Playgroud) 我有一个列表,a = [5、4、9、3、6、6、8、2],我本质上是想对前三个数字求和,而这个和将是新列表中的第一个值。新列表中的下一个值将是4、9和3 ...的总和。等等。如何在Python中循环?