如何计算 n 个 numpy 数组的平均值

4

我有'n'个形状为(128,)的numpy数组。如何获得一个形状为(128,)的平均numpy数组,用于列表中的numpy数组。 我已经查看了numpy的average()和mean()文档,这些文档描述了平均值是针对单个numpy数组中的所有元素计算而不是多个或numpy数组的列表。 例如:

numpyArrayList = [ar1,ar2,ar3,ar4...arn]
avgNumpyArray = avg(numpyArrayList)
avgNumpyArray.shape

应该返回结果为(128,),并且该数组应该包含所有numpy数组的平均值。
提前感谢。

np.stack(numpyArrayList) 会产生一个二维数组吗?它的形状是什么?np.mean 能在其上工作吗(使用其中一个 axis 值)? - hpaulj
3个回答

8

我会使用np.mean([ar1,ar2,ar3,ar4...arn], axis=0)


那应该是 axis=1。我删除了我的回答,因为你的更快,并且结果是一个numpy数组,而我的不是。 - Floran Gmehlin
1
我认为不是这样的,axis=1 会给出一个形状为 (n,) 而不是 (128,) 的数组。 - nicoco

1
你可以通过使用以下代码来实现这个功能。
ar = [ar1,ar2,ar3,...,arn]
r = np.mean(ar)

对于 axis=0,请使用以下内容

r = np.mean(ar, axis=0)

对于axis=1,请使用以下内容

r = np.mean(ar, axis=1)

0

类似这样的东西?

mean=0
n=len(numpyArrayList)
for i in numpyArrayList:
    mean += i.sum()/(128.*n)

编辑:误解了问题,抱歉


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接