bool 인덱싱
- 관계 연산자를 통해 얻은
bool
요소로 이루어진 배열을 인덱스로 사용하여 배열에서 특정값들을 추출해보겠습니다.
bool 인덱싱
- 우리는
Numpy
의 특별한 관계 연산을 이용하여 다음과 같이 bool
요소로 이루어진 배열을 만들 수 있습니다.
>>> import numpy as np
>>> A = np.array([1, 2, 3, 4, 5, 4, 3, 2, 1])
>>> print(A >= 4)
[False False False True True True False False False]
- 이제 해당
bool
배열을 인덱스로 사용하여 특정 요소들을 추출해봅시다.
>>> import numpy as np
>>> A = np.array([1, 2, 3, 4, 5, 4, 3, 2, 1])
>>> B = (A >= 4)
>>> print(A[B])
[4 5 4]
관계 연산자를 이용한 요소 값 변경
- 특정 구간의 해당하는 요소 값들을 변경하고 싶다면 다음과 같이 작성할 수도 있습니다.
>>> import numpy as np
>>> A = np.array([1, 2, 3, 4, 5, 4, 3, 2, 1])
>>> A[(A > 1) & (A <= 3)] = 0
>>> print(A)
[1 0 0 4 5 4 0 0 1]
관계 연산
Numpy의 특별한 관계 연산
- 파이썬 객체 사이에
>
, <
, ==
등 관계 연산자들을 사용하면 연산 결과로 True
, False
가 나옵니다. 그러나 numpy.ndarray
타입의 배열에 관계 연산자를 사용하면 관계 연산의 결과가 하나의 bool
타입의 값이 아닌 배열로 나옵니다.
numpy.ndarray
배열에 관계 연산자를 사용하면 어떻게 출력하는지 살펴봅시다.
>>> import numpy as np
>>> A = np.array([1, 2, 3, 4, 5, 4, 3, 2, 1])
>>> B = (A >= 4)
>>> print(B)
[False False False True True True False False False]
2개 이상의 조건식
Numpy
에서 논리 연산자를 사용하여 여러 조건식을 결합할 때, and
및 or
가 아닌 &
및 |
를 사용합니다. 2개의 조건식을 사용한 다음 코드를 살펴봅시다.
>>> import numpy as np
>>> A = np.array([1, 2, 3, 4, 5, 4, 3, 2, 1])
>>> print((A > 1) & (A <= 3))
[False True True False False False True True False]
>>> print((A > 3) | (A < 2))
[ True False False True True True False False True]