Easy way to test if each element in an numpy array lies between two values?

numpy, python

Solution

One solution would be:

import numpy as np
a = np.array([1, 2, 3, 4, 5])
(a > 1) & (a < 5)  # 1 < element < 5?
# array([False,  True,  True,  True, False])

Problem

I was wondering if there was a syntactically simple way of checking if each element in a numpy array lies between two numbers. In other words, just as `numpy.array([1,2,3,4,5]) < 5` will return `array([True, True, True, True, False])`, I was wondering if it was possible to do something akin to this: ``` 1 < numpy.array([1,2,3,4,5]) < 5 ``` ... to obtain ... ``` array([False, True, True, True, False]) ``` I understand that I can obtain this through logical chaining of boolean tests, but I'm working through some rather complex code and I was looking for a syntactically clean solution. Any tips?

Original source