Это должно работать. Обратите внимание, что ваша маска имеет противоположное значение np.ma.masked_array
, где 1
означает «удалено», поэтому я перевернул вашу маску:
>>> a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
>>> mask = ~np.array([1, 0, 1], dtype=np.bool) # Note - inverted mask.
>>> masked_a = np.ma.masked_array(
... a,
... np.repeat(mask, a.shape[1]).reshape(a.shape)
... )
>>> masked_a
masked_array(
data=[[1, 2, 3],
[--, --, --],
[7, 8, 9]],
mask=[[False, False, False],
[ True, True, True],
[False, False, False]],
fill_value=999999)