如果我有一个像这样的numpy数组(8个二维子数组):
array([[[1, 1, 1],
[1, 1, 1]],
[[2, 2, 2],
[2, 2, 2]],
[[1, 1, 1],
[1, 1, 1]],
[[2, 2, 2],
[2, 2, 2]],
[[3, 3, 3],
[3, 3, 3]],
[[4, 4, 4],
[4, 4, 4]],
[[3, 3, 3],
[3, 3, 3]],
[[4, 4, 4],
[4, 4, 4]]])
如何平均每四个二维数组,以便获得一个新的数组,如下所示:
array([[[1.5, 1.5, 1.5],
[1.5, 1.5, 1.5]],
[[3.5, 3.5, 3.5],
[3.5, 3.5, 3.5]]])
答案 0 :(得分:1)
将第一个轴拆分为两个,第二个轴的长度为4
,得到n+1-dim
数组,然后沿那个轴求平均值-
# a is the input array
In [42]: a.reshape((-1,4)+a.shape[1:]).mean(1)
Out[42]:
array([[[1.5, 1.5, 1.5],
[1.5, 1.5, 1.5]],
[[3.5, 3.5, 3.5],
[3.5, 3.5, 3.5]]])