如何获得numpy的平均数组

时间:2013-08-31 04:14:45

标签: python arrays numpy mean

我有一个4-D(d0,d1,d2,d3,d4)numpy数组。我想获得一个2-D(d0,d1)平均数组,现在我的解决方案如下:

area=d3*d4
mean = numpy.sum(numpy.sum(data, axis=3), axis=2) / area

但是如何使用numpy.mean来获得平均数组。

2 个答案:

答案 0 :(得分:4)

您可以重塑然后执行平均值:

res = data.reshape(data.shape[0], data.shape[1], -1).mean(axis=2)

在NumPy 1.7.1中,您可以将元组传递给axis参数:

res = np.mean(data, axis=(2,3,4))

答案 1 :(得分:0)

至少在版本1.7.1中,mean支持axis参数的轴元组,但未记录此功能。我认为这是过时文档的情况,而不是你不应该依赖的东西,因为sum等类似的例程记录了相同的功能。然而,使用风险自负:

mean = data.mean(axis=(2, 3))

如果您不想使用未记录的功能,则可以进行两次传递:

mean = data.mean(axis=3).mean(axis=2)