希望我不会太晚!这是你的数组:
X = np.array([[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5]])
让我们创建一个形状相同的零数组X
:
mask = np.zeros_like(X)
# array([[0, 0, 0, 0, 0],
# [0, 0, 0, 0, 0]])
然后,使用 指定要屏蔽或隐藏的列1
。在这种情况下,我们希望将最后 2 列屏蔽掉。
mask[:, -2:] = 1
# array([[0, 0, 0, 1, 1],
# [0, 0, 0, 1, 1]])
创建一个掩码数组:
X_masked = np.ma.masked_array(X, mask)
# masked_array(data=[[1, 2, 3, --, --],
# [1, 2, 3, --, --]],
# mask=[[False, False, False, True, True],
# [False, False, False, True, True]],
# fill_value=999999)
然后我们可以用 做任何我们想做的事情X_masked
,比如取每列的总和(沿着axis=0
):
np.sum(X_masked, axis=0)
# masked_array(data=[2, 4, 6, --, --],
# mask=[False, False],
# fill_value=1e+20)
很棒的一点是,这X_masked
只是一个视图X
,而不是副本。
X_masked.base is X
# True