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剩下的A
? A[([1, 2, 4, 5, 7, 8, ...., 9998, 9999, 10000])]
您可以使用 setdiff1d
到 select 所有不属于 m
的索引:
A[np.setdiff1d(np.arange(A.shape[0]), m)]
例如,给定一个 (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剩下的A
? A[([1, 2, 4, 5, 7, 8, ...., 9998, 9999, 10000])]
您可以使用 setdiff1d
到 select 所有不属于 m
的索引:
A[np.setdiff1d(np.arange(A.shape[0]), m)]