倒置花式索引

时间:2011-11-26 02:29:47

标签: python numpy scipy

使用花式索引,为此数组设置数组和掩码,只需选择与掩码对应的数组的数据。

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))

谢谢

1 个答案:

答案 0 :(得分:6)

请仔细查看numpy.invertnumpy.bitwise_notnumpy.logical_not或更简洁~mask。 (在这种情况下,他们都做同样的事情。)

作为一个简单的例子:

import numpy as np

x = np.arange(10)
mask = x > 5

print x[mask]
print x[~mask]