提问人:Nic 提问时间:6/22/2019 最后编辑:user3483203Nic 更新时间:6/22/2019 访问量:733
通过多个布尔掩码索引 numpy 数组 [duplicate]
Index numpy array by multiple boolean masks [duplicate]
问:
我有一个数组 x 和一个过滤器列表(布尔值数组与 x 长度相同):
x = np.random.rand(10)
filt1 = x > .2
filt2 = x < .5
filt3 = x % 2 > .02
filters_list = [filt1, filt2, filt3]
我想创建一个过滤器,它是所有过滤器的逻辑 AND,因此输出应该是filters_list
output = x[filt1 & filt2 & filt3]
如何从假设是任意的创建过滤器?filt1 & filt2 & filt3
filters_list
len(filters_list)
答:
0赞
Mark
6/22/2019
#1
您可以将 numpy.all()
与轴和过滤器列表一起使用。
x = np.arange(10)
filt1 = x > 2
filt2 = x < 9
filt3 = (x % 2) == 1
filters_list = np.all([filt1, filt2, filt3], axis=0)
x[filters_list]
#array([3, 5, 7])
评论
np.logical_and