首页 > 解决方案 > 你如何计算沿numpy数组轴的平均值?

问题描述

我是 python 新手。

这是我的三维数组:

my_data=numpy.zeros((index1,index2,index3))

为了说明,假设尺寸为:

index1 = 5
index2 = 4
index3 = 100

我想计算给定 index2 值的所有 index3 值的平均值。

我尝试了各种选择:

# Does not work
result[index1][index2] = numpy.mean(my_data[index1][index2][index3], axis=2)

# Also does not work
result = numpy.zeros((index1, index2))
result[index1][index2] = numpy.mean(my_data[index1][index2])

我错过了什么?

标签: pythonarrayspython-3.xnumpymean

解决方案


只需np.mean()axis关键字一起使用:

import numpy as np

np.random.seed(0)

data = np.random.randint(0,5,size=(3,3,3))

产量:

[[[4 0 3]
  [3 3 1]
  [3 2 4]]

 [[0 0 4]
  [2 1 0]
  [1 1 0]]

 [[1 4 3]
  [0 3 0]
  [2 3 0]]]

然后申请:

np.mean(data,axis=1)

#Or data.mean(axis=1)

回报:

[[3.33333333 1.66666667 2.66666667]
 [1.         0.66666667 1.33333333]
 [1.         3.33333333 1.        ]]

推荐阅读