用于评估大数据集平均值的Pythonic方法

时间:2016-11-28 20:47:21

标签: python numpy

我有一个由X值组成的向量N = 10e6。我想计算增加对的平均值。例如:

for i in range(0,N-1):
    Ex[i] = X[0:i+1].mean()

这是一种非常低效的方法。什么是更智能的Python算法?注意ExX都是浮动值的numpy数组。

2 个答案:

答案 0 :(得分:7)

numpy为中心的解决方案如下:

X = np.random.rand(10**6)
EX = np.cumsum(X) / np.arange(1, X.shape[0]+1)

答案 1 :(得分:3)

不是numpy专家,但这避免了每次都计算元素的总和。只需积累总和:

current_sum = 0.0
for i in range(0,N-1):
    current_sum += X[i]
    Ex[i] = current_sum/(i+1)