
인덱싱이랑 배열의 특정 요소에 접근하는것을 의미합니다. 위 사진처럼 배열 특정 요소에 접근하기 위해서 a[0], a[1]로 접근하게 됩니다.

반대로 배열의 특정 부분만 부분집합으로 뽑아서 사용 하고 싶을수도 있습니다. 이를 배열의 슬라이싱이라고 합니다. 개념을 대충 이해 하셨다면 이번시간은 NumPy에서 배열의 인덱싱과 슬라이싱에 대해 배워보도록 하겠습니다.
arr = np.array([10, 20, 30, 40, 50])
print(arr[0]) # 10 - 첫 번째 요소
print(arr[2]) # 30 - 세 번째 요소
print(arr[-1]) # 50 - 마지막 요소
print(arr[-2]) # 40 - 뒤에서 두 번째
# 값 변경
arr[0] = 99
print(arr) # [99, 20, 30, 40, 50]
image = np.array([
[10, 20, 30, 40],
[50, 60, 70, 80],
[90, 100, 110, 120]
])
# 단일 요소 접근: [행, 열]
pixel = image[1, 2] # 2번째 행, 3번째 열
print(f"image[1, 2] = {pixel}") # 70
# 행 전체 선택
first_row = image[0, :] # 또는 image[0]
print(f"First row: {first_row}") # [10, 20, 30, 40]
# 열 전체 선택
second_col = image[:, 1]
print(f"Second column: {second_col}") # [20, 60, 100]
배열의 첫번째 인덱스는 0입니다.
image[1, 2]: "1번째 행의 2번째 열" → 단일 값image[1, :]: "1번째 행의 모든 열" → 1D 배열image[:, 2]: "모든 행의 2번째 열" → 1D 배열배열의 일부 영역을 추출하는것을 슬라이싱이라고 합니다.
arr = np.arange(10) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(arr[2:5]) # [2, 3, 4] - 인덱스 2~4
print(arr[:3]) # [0, 1, 2] - 처음부터 인덱스 2까지
print(arr[5:]) # [5, 6, 7, 8, 9] - 인덱스 5부터 끝까지
print(arr[::2]) # [0, 2, 4, 6, 8] - 2칸씩 건너뛰기
print(arr[::-1]) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] - 역순