如何计算 3D 数组中项目的平均值?
How to calculate average value of items in a 3D array?
我正在尝试获取参数的平均值,然后使用给定函数进行绘图。我想我必须以某种方式填充一个 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。
说你的函数是这样的
def fluxmeasureMW(x,f,g,h):
return result_of_calc
只是 运行 适合循环;将 popts 累积在一个列表中,然后取平均值
from scipy import optimize
import numpy as np
n = 1000
t = []
for i in range(n):
y3 = y2 + np.random.normal(loc=0.0,scale=.1*y2)
popt,pcov = optimize.curve_fit(fluxmeasureMW,bands,y3)
t.append(popt)
f,g,h = np.mean(t,0)
t
将是列表的列表...
[[f,g,h],
[f,g,h],
...]
np.mean(t,0)
将对 列 .
的值进行平均
您也可以使用
import statistics
a = [[0, 1, 2],
[1, 2, 3],
[2, 3, 4],
[3, 4, 5]]
for column in zip(*a):
#print(column)
print(statistics.mean(column))
我正在尝试获取参数的平均值,然后使用给定函数进行绘图。我想我必须以某种方式填充一个 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。
说你的函数是这样的
def fluxmeasureMW(x,f,g,h):
return result_of_calc
只是 运行 适合循环;将 popts 累积在一个列表中,然后取平均值
from scipy import optimize
import numpy as np
n = 1000
t = []
for i in range(n):
y3 = y2 + np.random.normal(loc=0.0,scale=.1*y2)
popt,pcov = optimize.curve_fit(fluxmeasureMW,bands,y3)
t.append(popt)
f,g,h = np.mean(t,0)
t
将是列表的列表...
[[f,g,h],
[f,g,h],
...]
np.mean(t,0)
将对 列 .
您也可以使用
import statistics
a = [[0, 1, 2],
[1, 2, 3],
[2, 3, 4],
[3, 4, 5]]
for column in zip(*a):
#print(column)
print(statistics.mean(column))