我目前正在进行一系列实验,我需要多次运行以生成不错的误差条。 每个实验输出一个文件,其中包含各种信息,如均值/标准/吞吐量/延迟/第n百分位等。
然后我绘制了这些值中的每一个,但为了获得更明智的结果,我需要为每个单元格取所有这些文件的平均值,并将标准偏差绘制为误差条。
到目前为止,我的代码不起作用:
data_1 = np.loadtxt(fold + "/" + "clients_1.txt")
data_2 = np.loadtxt(fold + "/" + "clients_2.txt")
data_3 = np.loadtxt(fold + "/" + "clients_3.txt")
data = [data_1,data_2,data_3]
d_avg = sum(data) / float(len(data))
err = np.std(d_avg)
plt.plot(d_avg[:,19],d_avg[:,7], label='Test Plot', yerr = err[:,7] )
我得到的错误是:
IndexError: 0-d arrays can only use a single () or a list of newaxes (and a single ...) as an index
对问题是什么略有困惑。 d_agv
文件打印正常。
所有客户端文件具有相同数量的列行,并且一个文件中的每个单元格对应于另一个文件中的相同单元格(显然可能具有不同的值)
每个文件中每行的格式为:
1 1 50 1 1 0 100 11.30000 9.00000 50.00000 32.09000 5.66480 9.00000 9.00000 10.00000 11.00000 12.00000 13.55000 32.85000 39.47368
并且有多个这样的行。
答案 0 :(得分:1)
好的,所以如果我理解你的话,你需要实验运行的平均值和标准差。例如,如果我们有两次运行,其中一些随机数据在表格中给出,则平均值为:
run 1 run 2 mean
1 2 3 1 3 2 1 2.5 2.5
4 5 6 5 4 6 4.5 4.5 6
7 8 9 7 8 9 7 8 9
如果我的假设是正确的,那么这就是你想要的代码:
data_1 = np.loadtxt(fold + "/" + "clients_1.txt")
data_2 = np.loadtxt(fold + "/" + "clients_2.txt")
data_3 = np.loadtxt(fold + "/" + "clients_3.txt")
data = np.array([data_1, data_2, data_3])
data_avg = data.mean(axis=0)
data_err = data.std(axis=0)
plt.plot(data_avg[:,19], data_avg[:,7], label='Test Plot')