[Numpy] Bool 이용하기
- Python/Numpy
- 2020. 6. 2.
반응형
반응형
Bool을 이용하는 방법에 대해 설명하겠습니다.
Boolean indexing
ndarray도 인덱싱이 가능하다는 것은 앞서 작성한 포스팅을 보면 알 수 있습니다. 그런데 이 ndarray에서 조건에 맞는 원소만 가져오도록 하겠습니다. 파이썬 list와 똑같이 합니다.
import numpy as np
np.random.seed(22)
x = np.random.randint(1,100,size=10)
x를 100까지 수에서 아무거나 가져오고 여기서 짝수만 가져와보겠습니다.
even = x%2==0
print(even)
print(x[even])
even을 위에 만든 x의 각 원소를 2로 나눴을때 나머지가 0이 되는 것이라고 지정을 했습니다. print(even)을 하면 각 원소가 bool이 되는 것을 볼 수 있습니다. 이걸 그대로 x에 인덱스로써 적용을 하면 짝수만 가져오는 것을 볼 수 있습니다.
그래서 파이썬의 list와 동일하게 작용하는 걸 볼 수 있습니다.
배열을 다르게 해도 list로써 출력됩니다.
y = np.random.randint(1,100,size=(2,5))
even = y%2==0
print(y)
print(even)
print(y[even])
분명 36은 다른 열에 있지만 다 무시하고 리스트로써 뽑아줍니다.
AND OR NOT
다음으로는 and or not을 써보겠습니다.
ndarray에서는 and,or,not 을 쓸 수가 없어서 기호로 씁니다.
- AND - &
- OR - | (shift+\)
- NOT - !=
x = np.random.randint(1,100,size=10)
print(x)
x[(x<20)|(x%2==0)]
OR을 써보면 20보다 작거나 짝수인것만 가져오는 것을 볼 수 있습니다.
AND 와 NOT도 같은 방식으로 쓸 수 있습니다.
x = np.random.randint(1,100,size=10)
print(x)
x[(x<20)&(x%2 !=0)]
간단하게 bool을 ndarray에서 어떻게 쓰는지 알아봤습니다.
'Python > Numpy' 카테고리의 다른 글
[Numpy] ndarray에 값 추가하기 (2) | 2021.03.21 |
---|---|
ndarray 데이터로 그래프 그리기(matplotlib) (2) | 2020.06.05 |
[Numpy] Broadcasting(브로드캐스팅) (2) | 2020.05.27 |
[파이썬] Numpy axis(축) 이해 (2) | 2020.05.25 |
[Numpy] 연산,통계,집계함수 (2) | 2020.05.21 |