Arrays 屏蔽多维数组-numpy

Arrays 屏蔽多维数组-numpy,arrays,numpy,multidimensional-array,Arrays,Numpy,Multidimensional Array,我有两个大小相同的数组(2,3,2) 存储在多维数组中 >>> a = np.array([[[[ 1, 1], [ 7, 7]], [[ 2, 2], [ 8, 8]], [[ 3, 3], [ 9, 9]]], [[[ 4, 4], [10, 10]],

我有两个大小相同的数组
(2,3,2)

存储在多维数组中

>>> a  =  np.array([[[[ 1,  1],
              [ 7,  7]],

             [[ 2,  2],
              [ 8,  8]],

             [[ 3,  3],
              [ 9,  9]]],

            [[[ 4,  4],
              [10, 10]],

             [[ 5,  5],
              [11, 11]],

             [[ 6,  6],
              [12, 12]]]])

>>> a.shape
(2, 3, 2, 2)
我试图用
m
屏蔽
a
中的子数组:

>>> m  =  np.array([[[1, 0],
                 [0, 0],
                 [1, 1]],

                [[1, 1],
                 [0, 1],
                 [0, 0]]])
这将导致:

[[[[ 1,  1],
   [ 0,  0]

   [ 0,  0],
   [ 0,  0],

   [ 3,  3],
   [ 9,  9]]

  [[ 4, 4],
   [10, 10],

   [ 0,  0],
   [11,  11],

   [ 0,  0],
   [ 0,  0]]]
我尝试使用
np.concatenate
np.append
例如,
np.prod(np.concatenate([a,m],axis=0))


但是我的解决方案都不起作用。

扩展了
m
的维度,因此它使用
a
进行广播:

In [183]: a*m[...,None]                                                         
Out[183]: 
array([[[[ 1,  1],
         [ 0,  0]],

        [[ 0,  0],
         [ 0,  0]],

        [[ 3,  3],
         [ 9,  9]]],


       [[[ 4,  4],
         [10, 10]],

        [[ 0,  0],
         [11, 11]],

        [[ 0,  0],
         [ 0,  0]]]])

扩展
m
的维度,使其与
a
一起广播:

In [183]: a*m[...,None]                                                         
Out[183]: 
array([[[[ 1,  1],
         [ 0,  0]],

        [[ 0,  0],
         [ 0,  0]],

        [[ 3,  3],
         [ 9,  9]]],


       [[[ 4,  4],
         [10, 10]],

        [[ 0,  0],
         [11, 11]],

        [[ 0,  0],
         [ 0,  0]]]])