I suppose it depends what you're trying to return, but you could try using np.where, for example:
array = np.array([1,2,3,4,5,6,7,8,9,10])
sifted = np.where(array % 2)
Will return a numpy array of odd numbers.
Python's built in all() could be useful to you as well, depending on what you are doing with the output. The all() functions performs a conjunction across all members of a list on a given condition i.e.:
all(x % 2 for x in array)
This would return false in the above case.
Finally another useful thing to consider here are lambda functions and list comprehensions... By the sounds of it you are trying to do something flexible and dynamic, hence wanting the bools. You can use list comprehension to get the items you want directly, but this can get labour intensive if you're doing a lot of different things:
new_array = [x for x in array if x % 2]
A perhaps better alternative may be to specify lambda functions as and when you need them:
lam = lambda x : x % 2
print(lam(array))
This will return an array of the kind :
[1 0 1 0 1 0 1 0 1 0]
You can combine this with a filter to filter your results:
lam = lambda x : x % 2
filtered = list(filter(lam, array))