【发布时间】:2020-04-11 17:50:45
【问题描述】:
我正在尝试获取参数的平均值,然后使用给定函数进行绘图。我想我必须以某种方式填充一个 3 列数组,然后取该数组的平均值。我想为 popt[0] 、 popt[1] 和 popt[2] 创建 1000 个值,然后取所有这些值的平均值,然后绘制它们。
for n in range(0,1000):
params=np.zeros(3,1000)
y3=y2+np.random.normal(loc=0.0,scale=0.1*y2)
popt,pcov=optimize.curve_fit(fluxmeasureMW,bands,y3)
params.append(popt[0],popt[1],popt[2])
a_avg=st.mean(params[0:])
b_avg=st.mean(params[1:])
e_avg=st.mean(params[2:])
最终目标是剧情:
fluxmeasureMW(bands,a_avg,b_avg,e_avg)
我只是不确定如何迭代拟合函数以输出 1000 个值。 1000 是任意的,我只想要一个好的样本量。 y2 和波段的值已经定义,可以毫无问题地绘制,以及函数fluxmeasureMW。
【问题讨论】:
-
不太清楚您要做什么。
fluxmeasureMW是返回标量还是数组?bands是否已定义 - 它是什么?a(b)(e)_avg应该是什么 - 标量或数组?假设scipy.optimize.curve_fit、popt是优化的(非因变量)参数 - 你为什么要取它们的平均值? -
fluxmeasureMW 返回一个数组,bands 是一个永远不会改变的值数组,a_avg、b_avg 和 e_avg 都应该是标量。我想取他们的意思,因为我编写的代码每次运行都会给数据增加一些噪音,但是每次运行代码时这种噪音都会改变,所以我不断得到不同的参数值。
-
您想运行拟合一千次,每次都为
y参数添加一点噪音,然后获得优化参数的平均值。?优化了三个参数? -
a(b)(e)_avg是位置参数还是关键字参数?y2是标量?
标签: python arrays numpy average