计算大量数据平均值的Pythonic方法

2024-04-25 17:25:19 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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


Tags: 方法innumpy算法for智能range数组
2条回答

numpy为中心的解决方案可以如下所示:

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

不是numpy专家,但这样可以避免每次计算元素的总和。求和:

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

相关问题 更多 >