Очевидно, что numpy не поддерживает составные операторы, такие как a < arr < b
.
In [1]: import numpy as np
In [2]: arr = np.arange(10)
In [3]: 3 < arr < 7
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
In [4]: (3 < arr) & (arr < 7)
Out[4]:
array([False, False, False, False, True, True, True, False, False, False])
Составная запись работает с простыми числами, поэтому ожидать, что вышеприведенное сработает, было не лишним. Возможно, кто-то еще может объяснить, почему это не было реализовано в numpy.
In [5]: 3 < 2 < 7, 3 < 6 < 7
Out[5]: (False, True)