Python(Pandas)中数组的间隔均值和标准差

0 投票
1 回答
3826 浏览
提问于 2025-04-17 23:23

我想计算两个相关数组的多个连续区间的平均值和标准差(下面的列表),其中前两列分别是时间和距离。第三、第四和第五列是平均时间(中心)、平均距离和标准差。(实际上我是手动制作这个列表的)。在这个例子中,平均值和标准差是针对每三个连续区间计算的(但一般可以是每四个、每十个等等)。

所以,我有类似的长列表,我想用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绘制了这个图,但我的问题是如何为每个区间做循环。

enter image description here

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)

撰写回答