상세 컨텐츠

본문 제목

[Python]0이 아닌값을 가져올 땐 nonzero

coding

by golduny_zoo 2021. 5. 11. 15:10

본문

728x90

nonzero

Numpy모듈의 nonzero함수는 요소들 중 0이 아닌 값의 인덱스를 반환한다.

from numpy import nonzero
A = [0.1,1,0,4,0]
nonzero(A)

>>>(array([0, 1, 3]),)

 

 np.nonzero (a> 3) 는 조건이 참인 a 의 인덱스를 생성 합니다.

a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
a > 3
>>>array([[False, False, False],
          [ True,  True,  True],
          [ True,  True,  True]])
np.nonzero(a > 3)
>>> (array([1, 1, 1, 2, 2, 2]), array([0, 1, 2, 0, 1, 2]))

# 요렇게도 사용가능하다.
a[np.nonzero(a > 3)]
>> array([4, 5, 6, 7, 8, 9])
#하지만 쉽게도 가능하다는거
a[a > 3]
>>> array([4, 5, 6, 7, 8, 9])
numpy.org/doc/stable/reference/generated/numpy.nonzero.html

count_nonzero

Numpy모듈의 count_nonzero함수는 요소들 중 0이 아닌 값의 카운팅 해준다.

 

axis를 지정하여 행을 기준으로 찾을지 열을 기준으로 찾을지 정할 수 있다.

keepdim을 이용하여 배열이 깨지지 않게 사용할 수 있다. 

from numpy import count_nonzero
a = np.array([[0, 1, 7, 0],
              [3, 0, 2, 19]])
np.count_nonzero(a)
>>> 5
np.count_nonzero(a, axis=0)
>>> array([1, 1, 2, 1])
np.count_nonzero(a, axis=1)
>>> array([2, 3])
np.count_nonzero(a, axis=1, keepdims=True)
>>> array([[2],
           [3]])
https://numpy.org/doc/stable/reference/generated/numpy.count_nonzero.html

 

관련글 더보기