개발학습일지

[Python] 넘파이 슬라이싱, boolean 연산 _ & 그리고, | 또는 사용 본문

Python/Numpy

[Python] 넘파이 슬라이싱, boolean 연산 _ & 그리고, | 또는 사용

처카푸 2024. 4. 7. 16:46

boolean 연산은 잘 알고있어야 데이터 분석을 정확하게 할 수 있다.

- 변수 X 만들기

X = np.random.randint(1, 100, (4,5))
X
# array([[ 9, 25, 68, 88, 80],
       # [49, 11, 95, 53, 99],
       # [54, 67, 99, 15, 35],
       # [25, 16, 61, 59, 17]])

 

변수 X에서 80 보다 큰 데이터를 가져와 보자.

X>80
# array([[False, False, False,  True, False],
       # [False, False,  True, False,  True],
       # [False, False,  True, False, False],
       # [False, False, False, False, False]])
# 불리언으로 확인하고 변수에서 True 값 억세스 하기
X[X>80]
# array([88, 95, 99, 99])

 

x 의 데이터 중에서, 50보다 크고 80보다 작은 데이터만 가져와 보자.

- and 가 아닌 ' & ' 사용

(X > 50) & ( X < 80)
# array([[False, False,  True, False, False],
       # [False, False, False,  True, False],
       # [ True,  True, False, False, False],
       # [False, False,  True,  True, False]])
X[ (X < 50) & ( X < 80) ]
# array([ 9, 25, 49, 11, 15, 35, 25, 16, 17])

 

x 가 50 보다 작거나 80 보다 큰 데이터만 가져와 보자.

- or 가 아닌 ' | ' shift+값 사용

(X < 50) | (X > 80)
# array([[ True,  True, False,  True, False],
       # [ True,  True,  True, False,  True],
       # [False, False,  True,  True,  True],
       # [ True,  True, False, False,  True]])
X[ (X < 50) | (X > 80) ]
# array([ 9, 25, 88, 49, 11, 95, 99, 99, 15, 35, 25, 16, 17])