Этот вопрос не является дубликатом из другой вопрос . Другой вопрос касается одного логического вывода (True/False
), когда условный оператор применяется к массиву Numpy. Вот почему важно использовать np.any()
или np.all()
для однозначного определения выходных данных.
Мой вопрос здесь говорит о создании поэлементного массива-вывода из логических True/False
значений, когда мы оцениваем, находится ли массив a
между 2
и 5
, используя выражение 2 < a < 5
,Этот вопрос касается жизнеспособности такого удобного выражения при использовании массивов numpy
.
Python допускает следующее для скаляра.
a = 7
print(2 < a < 5) # False
a = 4
print(2 < a < 5) # True
Однако, если я попытаюсь сделать то же самое с пустым массивом, он не будет работать.
import numpy as np
a = np.arange(10)
2 < a < 5
Это дает ошибку . Но, любой из следующих двух методов работает (как и ожидалось):
np.logical_and(2 < a, a < 5) # method-1
(2 < a) & (a < 5) # method-2
Вывод :
array([False, False, False, True, True, False, False, False, False,
False])
Итак, мой вопрос: есть ли какой-нибудь тупойэквивалентный такой, что вы могли бы просто написать 2 < a < 5
и получить приведенный выше вывод?