본문 바로가기
Python

[ML] where: numpy 의 idx찾기

by ds31x 2024. 3. 19.

numpy에서 ndarray 인스턴스에서 

특정 조건을 만족하는 elements의 위치(index, idx)를 찾는 기능을

numpy 모듈의 where 함수가 제공해줌.

 

기본적으로 numpy에서 index를 나타내는 방식은 

  • 각각의 축마다 해당 축에서의 index인 scalar 값들을 가지고 있는
  • 개별의 1차원 ndarray 객체들을 item으로 가지는
  • tuple (sequence type이면됨)이 이용됨.

 

3차원의 ndarray에 대한 경우, 3개의 sequence type 인스턴스를 item으로 3개 가진 tuple이 

where함수의 반환값이 됨 (당연히 item인 3개의 sequence 인스턴스는 같은 length를 가짐).

 

다음의 코드로 사용법을 확인할 것.

import numpy as np

r = np.random.default_rng(seed = 23)

a = r.random((3,3,3)).astype(np.float32) * 10.

bm = a>=5.
idxs = np.where( a>=5)

print(a)
print('-----------------')
print(np.array(idxs).shape)
print(idxs)