0

认为

a = [
        [1, 2, 3],
        [4, 5, 6],
        [7, 8, 9],
    ]

mask = [1, 0, 1]

我想

a[mask] == [
           [1, 2, 3],
           [False, False, False],
           [7, 8, 9],
           ]

或同等学历。

意思是,我想用 访问amaskwheremask是较低维度的,并有自动广播。我想np.ma.arraymask=参数的构造函数中使用它。

4

1 回答 1

2

这应该有效。请注意,您的掩码具有相反的含义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)
于 2020-04-26T19:02:13.193 回答