【问题标题】:How to calculate Average of n numpy arrays [duplicate]如何计算n个numpy数组的平均值[重复]
【发布时间】:2019-07-30 13:01:35
【问题描述】:

我有 'n' 个 numpy 数组,每个数组的形状为 (128,) 如何为 numpy 数组列表获取形状为 (128,) 的平均 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 值之一)?

标签: python arrays numpy


【解决方案1】:

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

【讨论】:

  • 然而应该是axis=1。我删除了我的答案,因为你的答案更快,结果是一个 numpy 数组,而我的没有。
  • 我不这么认为,axis=1 会给出一个形状为(n,) 的数组,而不是(128,)
【解决方案2】:

您可以使用以下代码实现此目的

ar = [ar1,ar2,ar3,...,arn]
r = np.mean(ar)

对于轴=0,使用以下

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

对于轴=1 使用以下

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

【讨论】:

    【解决方案3】:

    类似的东西?

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

    编辑:误解了这个问题,对不起

    【讨论】:

      猜你喜欢
      • 2014-04-20
      • 2021-09-11
      • 1970-01-01
      • 1970-01-01
      • 2016-01-10
      • 2016-08-24
      • 2020-12-09
      • 2020-08-01
      相关资源
      最近更新 更多