gca*_*tes 4 python numpy scipy
使用花式索引具有该阵列的数组和掩码,很容易仅选择与掩码对应的数组的数据.
import numpy as np
a = np.arange(20).reshape(4, 5)
mask = [0, 2]
data = a[:, mask]
Run Code Online (Sandbox Code Playgroud)
但是有没有快速的方法来选择不属于掩码的阵列的所有数据(即掩码是我们要拒绝的数据)?我试图找到一个通过中间布尔数组的通用解决方案,但我确信有一些东西真的很容易.
mask2 = np.ones(a.shape)==1
mask2[:, mask]=False
data = a[mask2].reshape(a.shape[0], a.shape[1]-size(mask))
Run Code Online (Sandbox Code Playgroud)
谢谢
看一看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]
Run Code Online (Sandbox Code Playgroud)