오류

넘파이 액세스 boolean 연산중 오류

공부짱짱열심히하기 2022. 11. 23. 13:20

X의 데이터 중에서, 50보다 크고 80보다 작은 데이터를 가져오시오

X
Out[167]:
array([[ 13,  22,  49,  42,  80],
       [ 91,  63,  58,  20,  34],
       [ 60,  40,  16,  37,  66],
       [  2,  44,  16,  87, 100]])

 

X > 50
Out[176]:
array([[False, False, False, False,  True],
       [ True,  True,  True, False, False],
       [ True, False, False, False,  True],
       [False, False, False,  True,  True]]
 
X <80
Out[177]:
array([[ True,  True,  True,  True, False],
       [False,  True,  True,  True,  True],
       [ True,  True,  True,  True,  True],
       [ True,  True,  True, False, False]])

이 두개의 조건이 만족을 해야 하는 상황에서

 

and 연산자를 활용하면 오류가 나온다

왜냐면 and 혹은 or은 if 조건문에서만 활용되는 연산자로 

데이터 억세스에서는  & , |  를 활용을 한다.

 
 
(X >50) & (X<80)
Out[181]:
array([[False, False, False, False, False],
       [False,  True,  True, False, False],
       [ True, False, False, False,  True],
       [False, False, False, False, False]])