- Numpy 라이브러리를 불러와서 4*3 크기의 행렬 x 생성
In [1]:
import numpy as np
x = np.array([[0, 1, 0],
[2, 5, 0],
[3, 1, 2],
[0, 0, 3]])
x
Out[1]:
array([[0, 1, 0],
[2, 5, 0],
[3, 1, 2],
[0, 0, 3]])
- n차원의 행렬 x에 0이 아닌 값이 k개 있다고 할때,
np.nonzero(x)
를 실행하면 길이 k인 array n개가 반환된다. - 각 array는 0이 아닌 값들의 i번째 차원 index를 저장하고 있음
- x의 0행 1열, 1행 0열, 1행 1열... 3행 2열까지 모두 0이 아님을 확인 가능
In [2]:
np.nonzero(x)
Out[2]:
(array([0, 1, 1, 2, 2, 2, 3], dtype=int64),
array([1, 0, 1, 0, 1, 2, 2], dtype=int64))
np.nonzero(x)
값을 index로 사용하면 0이 아닌 값 자체를 구할 수 있다.
In [3]:
index = np.nonzero(x)
x[index]
Out[3]:
array([1, 2, 5, 3, 1, 2, 3])
np.where()
메소드를 사용해도 동일한 결과를 얻을 수 있다.
In [4]:
np.where(x != 0)
Out[4]:
(array([0, 1, 1, 2, 2, 2, 3], dtype=int64),
array([1, 0, 1, 0, 1, 2, 2], dtype=int64))
'파이썬 팁' 카테고리의 다른 글
주피터 노트북에서 백준 입력 편하게 받기 (0) | 2023.01.31 |
---|---|
random 모듈 사용하기 (0) | 2023.01.03 |
다차원 리스트 값 바꿀 때 여러 줄이 같이 바뀐다면 (0) | 2022.12.09 |
파이썬 표준 라이브러리 itertools 사용하기 (2) (0) | 2022.12.06 |
파이썬 표준 라이브러리 itertools 사용하기 (1) (0) | 2022.12.05 |
댓글