Numpy - 计算一维数组的元素明智的平均值

Numpy - Calculate element wise mean for a 1D array

我发现了多个标题相似的问题,但它们与我的情况不符。

我有一个带有偏移值的 np.array,我想要所有先前值的索引的平均值。

我的第一个方法是使用 for 循环,但是对于巨大的数组,这显然是一种减慢速度的方法。

offset = np.array([2, 4, 5, 7, 8, 10])
mean_mraw = []

for i, ofs in enumerate(offset):
        mean_mraw.append(offset[0:i+1].mean())

所以我期望的是:

mean_mraw = [2, 3, 3.6, 4.5, 5.2, 6] #np.array

是否有 np- build in function for that 或者我怎么能用另一种方式解决它。

谢谢

您可以使用累计总和(np.cumsum)除以所见元素的数量(使用np.arange):

a = np.array([2, 4, 5, 7, 8, 10])
out = np.cumsum(a)/(np.arange(a.shape[0])+1)

输出:

array([2.        , 3.        , 3.66666667, 4.5       , 5.2       ,
       6.        ])