2

我有一个 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得到平均数组。

4

2 回答 2

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))
于 2013-08-31T06:32:14.293 回答
0

至少在版本 1.7.1 中,mean支持axis参数的轴元组,尽管此功能没有记录。我相信这是一个过时文档的例子,而不是你不应该依赖的东西,因为类似的例程,比如sum记录相同的特性。尽管如此,使用风险自负:

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

如果您不想使用未记录的功能,则可以通过两次:

mean = data.mean(axis=3).mean(axis=2)
于 2013-08-31T04:17:03.027 回答