我有一个二维Numpy数组,形状为(256,128)
,我想对256行中的每8行求平均,所以我最终得到了一个形状为(32,128)
的numpy数组,有没有办法只取一维的平均值?
发布于 2013-07-10 15:59:12
您可以对轴进行reshape
,然后求平均值:
averaged = a.reshape((32,8,128)).mean(axis=1)
结果是一个(32,128)数组。
发布于 2013-07-10 15:59:48
使用np.average
的axis
参数。如果未提供,将计算展平数组的平均值。
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-08-16 20:29:38
使用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)
https://stackoverflow.com/questions/17575357
复制