我有一个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
来获得平均数组。
答案 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)