我有一个 4-D(d0,d1,d2,d3,d4) numpy 数组。我想得到一个 2-D(d0,d1)mean 数组,现在我的解决方案如下:
area=d3*d4
mean = numpy.sum(numpy.sum(data, axis=3), axis=2) / area
但是我怎样才能numpy.mean
得到平均数组。
您可以重塑然后执行平均:
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.7.1 中,mean
支持axis
参数的轴元组,尽管此功能没有记录。我相信这是一个过时文档的例子,而不是你不应该依赖的东西,因为类似的例程,比如sum
记录相同的特性。尽管如此,使用风险自负:
mean = data.mean(axis=(2, 3))
如果您不想使用未记录的功能,则可以通过两次:
mean = data.mean(axis=3).mean(axis=2)