根据一列中的值屏蔽2D numpy数组

Cur*_*arn 11 python arrays numpy mask

假设我有以下numpy数组:

a = [[1, 5, 6],
     [2, 4, 1],
     [3, 1, 5]]
Run Code Online (Sandbox Code Playgroud)

我想掩盖1第一列中的所有行.那就是我想要的

   [[--, --, --],
     [2, 4, 1],
     [3, 1, 5]]
Run Code Online (Sandbox Code Playgroud)

这是否可以使用numpy蒙面数组操作?怎么能这样做?

谢谢.

eum*_*iro 7

import numpy as np

a = np.array([[1, 5, 6],
              [2, 4, 1],
              [3, 1, 5]])

np.ma.MaskedArray(a, mask=(np.ones_like(a)*(a[:,0]==1)).T)

# Returns: 
masked_array(data =
 [[-- -- --]
 [2 4 1]
 [3 1 5]],
             mask =
 [[ True  True  True]
 [False False False]
 [False False False]])
Run Code Online (Sandbox Code Playgroud)