넘파이 array를 대상으로만 사용가능하다
두가지 기능이있다
첫번째 인덱스 반환
조건식이 주어졌을때 말그대로 어디(where)있는지 알려준다 (출력이 튜플인건 맘에에 안든다)
형식은 np.where(조건) 이며, 조건에 부합하는 인덱스를 출력한다
import numpy as np
array=np.arange(17,27)
print(array)
print(np.where(array>20))
>>> [17 18 19 20 21 22 23 24 25 26]
>>> (array([4, 5, 6, 7, 8, 9]),)
인덱스가 깔끔한 형태로는 출력되지않아 재가공이 필요하다
array = np.array( [[ [1001,2],[3,4] ], [ [1087,2],[1,1]] ] )
print(array)
print(np.where(array>1000))
>>> [[[1001 2]
[ 3 4]]
[[1087 2]
[ 1 1]]]
>>> (array([0, 1]), array([0, 0]), array([0, 0]))
2차원리스트에서 where를 실행시키게 되면 조건에 부합하는 항목의 인덱스의 좌표를
디멘션을 기준으로 나눠서 들고온다 말이 복잡한데 예시를 보면 바로 이해가 될것이다
두번째 조건에 따른 True, False 브로드 캐스팅
이기능은 임계점에 따라 True, False로 나눌때 유용한 기능인것같다 이점때문에 사실 np.where가 쓸만하다 느꼈고
알게된김에 포스팅도 하게되었다
형식은 np.where(where, 조건True변환할 값, 조건 False일때 변환할 값)
a = np.random.rand(5)
print(a)
print(np.where(a>0.5, 1, 0))
>>> [0.06056743 0.64294922 0.29549087 0.70656652 0.58352075]
>>> [0 1 0 1 1]
출처
'기타' 카테고리의 다른 글
facenet 임베딩 모델 구조의 구현 (0) | 2023.04.28 |
---|---|
FL STUDIO 첫번째 곡(기초조작법 익히기) (0) | 2023.04.16 |
넘파이에서 리스트처럼 곱하기 적용하고싶을때 (0) | 2023.02.25 |
re.search 위치 여러개 찾기 (0) | 2023.02.23 |
pytorch summary() 기능 (0) | 2023.02.21 |
댓글