Python Numpy:没有for循环的每个顺序元素的操作?

时间:2017-04-14 10:21:31

标签: python numpy vectorization

这是一个非常简单的问题,但广泛的搜索并没有给我一个满意的答案。

我有一系列随着时间的推移而发展的数字"例如x = [1, 2, 3, 4, 5]我希望计算每个时间点的平均值。使用for循环我只需要

import numpy as np

x = [1, 2, 3, 4, 5]
y = np.empty(5)

for i in range(5):

    y[i] = np.mean(x[0:i+1])

print(y)

[ 1.   1.5  2.   2.5  3. ]

在我正在使用的过程中,数字不一定遵循上面的简单动态。我想知道在运行中是否有一些通用的方法来应用一个操作(例如计算平均值)。时尚,这比for-loop更快?

1 个答案:

答案 0 :(得分:2)

怎么样

a = np.array([1, 2, 3, 4, 5])
np.cumsum(a)/(np.arange(1, a.size + 1))

这将用于计算运行平均值。

  

我想知道是否有一种以“跑步”方式应用操作(例如计算均值)的一般方法

我无法回答这个问题。这取决于操作。