Python, Numpy: 如何 select 带有给定掩码的 numpy 数组

Python, Numpy: How to select numpy array with given mask

例如,给定一个 (10000, 250) 大小的 numpy 矩阵 A

>>>A.shape
(10000, 250)

和一个 numpy 掩码数组 m

>>>m = np.arange(0, A.shape[0], 3)
>>>m
([0, 3, 6, 9, ....., 9997])

这将select想要A

的专栏
>>>A[m]
>>>A[m].shape
(3333, 250)

但我的问题是。如何select剩下的AA[([1, 2, 4, 5, 7, 8, ...., 9998, 9999, 10000])]

您可以使用 setdiff1d 到 select 所有不属于 m 的索引:

A[np.setdiff1d(np.arange(A.shape[0]), m)]