1

我有一个 2-D numpy 形状数组,(256,128)我想将 256 中的每 8 行平均起来,所以我最终得到一个 numpy 形状数组(32,128)有没有办法只平均一维?

4

3 回答 3

6

您可以reshape然后在一个轴上平均:

 averaged = a.reshape((32,8,128)).mean(axis=1)

结果是一个 (32,128) 数组。

于 2013-07-10T15:59:12.073 回答
0

使用 for 循环

[m, n ] = shape(Array)
meanArray = zeros((m/8, n))

for i in range(0, m/8):
  f = i*8
  meanArray[i, :] = numpy.mean(Array[f:f+8, :], axis=1)
于 2013-08-16T20:29:38.003 回答
0

使用. axis_ np.average如果不提供,将计算 flatten 数组的平均值。

In [19]: a
Out[19]: 
array([[1, 2, 3],
       [2, 3, 4]])

In [20]: np.average(a)
Out[20]: 2.5


In [22]: np.average(a, axis=1)
Out[22]: array([ 2.,  3.])

In [23]: np.average(a, axis=0)
Out[23]: array([ 1.5,  2.5,  3.5])
于 2013-07-10T15:59:48.370 回答