使用花式索引,为此数组设置数组和掩码,只需选择与掩码对应的数组的数据。
import numpy as np
a = np.arange(20).reshape(4, 5)
mask = [0, 2]
data = a[:, mask]
但有没有一种快速方法可以选择不属于掩码的阵列的所有数据(即掩码是我们要拒绝的数据)? 我试图找到一个通过中间布尔数组的通用解决方案,但我确信有一些非常简单。
mask2 = np.ones(a.shape)==1
mask2[:, mask]=False
data = a[mask2].reshape(a.shape[0], a.shape[1]-size(mask))
谢谢
答案 0 :(得分:6)
请仔细查看numpy.invert
,numpy.bitwise_not
,numpy.logical_not
或更简洁~mask
。 (在这种情况下,他们都做同样的事情。)
作为一个简单的例子:
import numpy as np
x = np.arange(10)
mask = x > 5
print x[mask]
print x[~mask]