머신러닝과 기술적 분석

numpy boolean indexing 할 때 여러 조건을 조합하는 방법 본문

python

numpy boolean indexing 할 때 여러 조건을 조합하는 방법

BetterToday 2017. 9. 12. 22:26
728x90

numpy array 에서 조건문을 vector화 해서 indexing 하는 것을 boolean indexing 이라고 한다.


예를 들면 img 라는 이름의 numpy array 에서 200보다 작은 element는 value를 0으로 바꾸고 싶을 때 다음과 같이 coding 하는게 간단하고 빠르다.

img[img < 200] = 0

물론 if 문을 써도 되지만 위 code 처럼하는 것이 가독성과 효율성에서 좋은 code다.


matlab의 matrix도 이와 같은 방식의 indexing을 지원하고 있고, 처음 matlab 배울 때 무지 헷갈렸지만 나중에는 굉장히 유용하게 썼었고, python numpy로 넘어오면서도 잘 쓰고 있다.


다음과 같이 조건문 여러개를 and/or 로 연결하는 방법도 있다. 이걸 오늘에서야 알았다.

img[(img < 200) & (img > 150)] = 0
img[(img >= 200) | (img <= 150)] = 0


728x90
반응형
Comments