Python(Pandas)中数组的间隔均值和标准差
我想计算两个相关数组的多个连续区间的平均值和标准差(下面的列表),其中前两列分别是时间和距离。第三、第四和第五列是平均时间(中心)、平均距离和标准差。(实际上我是手动制作这个列表的)。在这个例子中,平均值和标准差是针对每三个连续区间计算的(但一般可以是每四个、每十个等等)。
所以,我有类似的长列表,我想用PANDAS、NUMPY和/或SCIPY来计算一些东西,可能是通过循环来创建平均时间、平均距离和标准差的数组。这样就可以绘制距离与时间的关系图,并绘制时间和距离的平均值及其标准差(误差,称为sigma)。
1 1 2 4.6 3.29
2 4 5 25.6 8.17
3 9 8 64.6 13.07
4 16 11 121.6 17.96
5 25 14 196.6 22.86
6 36 17 289.6 27.76
7 49 20 400.6 32.66
8 64
9 81
10 100
11 121
12 144
13 169
14 196
15 225
16 256
17 289
18 324
19 361
20 400
21 441
我用errorbar
绘制了这个图,但我的问题是如何为每个区间做循环。
1 个回答
1
你可以使用 numpy 来实现这个功能。reshape
这个函数可以用来把数据分成小块,以便计算一些统计信息:
import numpy as np
// data
time = np.arange(1.0,22.0)
distance = time ** 2
// group data into chunks to get stats
meanTime = np.mean(time.reshape(-1,3),axis=1)
meanDistance = np.mean(distance.reshape(-1,3), axis=1)
std = np.std(distance.reshape(-1,3), axis=1)