Python 多次运行计算数学函数(Numpy)

Python 多次运行计算数学函数(Numpy),python,file-io,numpy,matplotlib,Python,File Io,Numpy,Matplotlib,我目前正在进行一系列的实验,我需要多次运行才能产生合适的误差条。 每个实验输出一个文件,其中包含各种信息,如平均值/标准/吞吐量/延迟/第n个百分位数等 然后,我绘制这些值中的每一个,但为了得到更合理的结果,我需要取每个单元格的所有这些文件的平均值,并用获得的标准偏差绘制为误差条 然而,到目前为止,我的代码不起作用: data_1 = np.loadtxt(fold + "/" + "clients_1.txt") data_2 = np.loadtxt(fold + "/" + "cl

我目前正在进行一系列的实验,我需要多次运行才能产生合适的误差条。 每个实验输出一个文件,其中包含各种信息,如平均值/标准/吞吐量/延迟/第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 

有很多这样的行。

好的,如果我理解的很好,你需要整个实验的平均值和标准偏差。例如,如果我们在下表中给出了2次随机数据,则平均值为:

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')

不能在列表中使用numpy函数,必须将数据转换为numpy数组。你能提供更多关于clients\u n.txt文件的信息吗?给他们几句话?它们都包含相同数量的元素吗?小细节,你可以吗?使用os.path.join作为文件名,而不是字符串连接。@Victor进行了编辑以反映这一点确定现在更清楚了一点,但我仍然不明白您打算对数据做什么?你想找出每个表中每一列的平均值和标准偏差,然后画出什么?每个文件代表同一个实验的运行。我生成的图是这些文件的平均值,如果你看左边,150是客户机/机器的数量等,浮动是这些文件的标准偏差值。