如何计算沿Numy数组轴的平均值?

2022-04-17 00:00:00 python python-3.x numpy arrays mean

问题描述

我还是个新手。

以下是我的三维数组:

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])

我错过了什么?


解决方案

只需使用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.        ]]

相关文章