논리 연산자인 |(or)과 &(and), -(not)을 사용해서 여러 불 표현을 결합할 수 있다. 다음 리스트에서 -0.5와 0.5 사이에 위치한 아이템은 무엇인가? numpy에 물어보자!
linear = np.arange(-1, 1.1, 0.2)
(linear <= 0.5) & (linear >= -0.5)
>>>
array([False, False, False, True, True, True, True, True, False,
False, False], dtype=bool)
● ● ● ●
관계형 연산자와 불 연산자
관계형 연산자(<나 = = 같은)는 numpy 배열에 불 연산을 수행하는 &, |, !인 비트 단위 연산자보다 처리 순위가 떨어진다. 이는 굉장히 헷갈리는데, ‘일반적인’ 파이썬 불 연산자인 or, and, not은 관계형 연산자보다 처리 순위가 떨어지기 때문이다. 따라서 배열 비교에 괄호를 씌워 numpy가 이를 먼저 처리하게 해야 한다.