我有一个数组x和一个过滤器列表(布尔数组与x长度相同):
x = np.random.rand(10)
filt1 = x > .2
filt2 = x < .5
filt3 = x % 2 > .02
filters_list = [filt1, filt2, filt3]
我想创建一个过滤器,该过滤器是filters_list
中所有过滤器的逻辑与,因此输出应为
output = x[filt1 & filt2 & filt3]
假设filt1 & filt2 & filt3
是任意的,如何从filters_list
创建过滤器len(filters_list)
?
答案 0 :(得分:0)
您可以对轴和过滤器列表使用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])