단위 요소에 접근해야 할 시 불필요한 연산을 줄이기 위해서는 특정 행이나 열 또는 일정 범위의 하위 영역을 선택하여 접근.
import numpy as np
array = np.array([[[1,2],
[3,4]],
[[5,6],
[7,8]]])
for i in array[0]:
for j in i:
if j % 2 == 0:
print(j)
<배열의 블록 단위 요소에 접근하기>
2
4
1차원 이상의 배열을 참조한 경우 반환 형식은 ndarray
array[0]은 3차원 ndarray 클래스에서 첫 번째 페이지를 참조함
-> 2차원 배열이 저장되어 있으며 반복문을 통해 접근
for문은 배열의 열에 해당하는 요소에 접근하고 if를 통해 요소가 짝수인지 판별
import numpy as np
array = np.array([[1,2,3,4,5],
[6,7,8,9,10],
[11,12,13,14,15],
[16,17,18,19,20]])
print(array[1:3])
print(array[::2])
print(array[2:, 1::2])
<배열의 블록 단위 요소에 접근하기(범위 참조 방식)>
[[ 6 7 8 9 10]
[11 12 13 14 15]]
[[ 1 2 3 4 5]
[11 12 13 14 15]]
[[12 14]
[17 19]]
Numpy 배열에 슬라이싱 사용 가능.
배열[start:end] -> end-1까지의 일부 요소를 잘라 표시
(첫번째 결과) 두 번째 행부터 세 번째 행을 잘라 반환
배열[start:end:step] -> start부터 end-1까지 step 간격만큼 배열 표시
콜론(:) 사이 값을 포함하지 않는다면 행 또는 모든 열을 위미
(두번째 결과) 모든 행에서 두 간격만큼 띄워 출력 = array[0:-1:2]
배열[start:end:step, start:end:step]
콤마(,)로 행과 열을 구분
(세번째 결과) 세번째 행부터 모든 행을 가져오며, 두번째 열부터 모든 열을 두 간격 띄워 출력
'영상처리 > OpenCV' 카테고리의 다른 글
배열 병합 및 분리 (0) | 2022.06.07 |
---|---|
배열 차원 변형 (0) | 2022.06.07 |
배열의 개별 단위 요소에 접근 방법 (0) | 2022.06.07 |
ndarray 클래스 - N차원 배열 (0) | 2022.06.07 |
OpenCV 이론 (0) | 2022.06.07 |