平均每四个二维numpy数组python

时间:2019-07-12 13:39:33

标签: python python-2.7 numpy

如果我有一个像这样的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]]])

1 个答案:

答案 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]]])