0Pricing
Learn AI with Python · 강의

인덱싱, 슬라이싱, 고급 인덱싱

기본 슬라이싱, 불리언 마스킹, 고급 인덱싱, 조건부 선택을 위한 np.where()를 다룹니다.

인덱싱, 슬라이싱, 고급 인덱싱은(는) CoddyKit의 무료 Learn AI with Python 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Learn AI with Python 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.

인덱싱 기초

NumPy 배열은 Python 목록처럼 0부터 시작하는 인덱싱을 사용합니다. 음수 인덱스는 끝에서부터 셉니다.

import numpy as np
a = np.array([10, 20, 30, 40, 50])
print(a[0])    # 10
print(a[-1])   # 50

1차원 슬라이싱

슬라이스는 start:stop:step 형식을 사용하며 복사본이 아닌 뷰를 반환하므로, 슬라이스를 수정하면 원본도 변경됩니다.

print(a[1:4])    # [20 30 40]
print(a[::2])    # [10 30 50]
view = a[1:3]
view[0] = 99
print(a)         # [10 99 30 40 50]

2차원 인덱싱 [행, 열]

2차원 배열에서는 두 좌표를 하나의 대괄호 안에 넣어 인덱싱합니다: m[row, col]. 이는 m[row][col]보다 더 깔끔하고 빠릅니다.

m = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(m[1, 2])   # 6
print(m[0, 0])   # 1

행과 열 슬라이싱

콜론을 사용하면 축 전체를 선택할 수 있습니다. m[:, 1]은 모든 행에서 열 1을 선택합니다.

print(m[0, :])    # first row:    [1 2 3]
print(m[:, 1])    # second col:   [2 5 8]
print(m[1:, :2])  # bottom-left block

불리언 마스크

비교 연산은 같은 형태의 불리언 배열을 생성합니다. 이 마스크로 인덱싱하면 값이 참인 위치만 남습니다.

a = np.array([5, 12, 7, 20, 3])
mask = a > 8
print(mask)     # [False  True False  True False]
print(a[mask])  # [12 20]

조건 결합

괄호와 함께 요소별 &(및)와 |(또는)를 사용합니다. Python 키워드 and/or는 배열에서는 작동하지 않습니다(NOT).

print(a[(a > 4) & (a < 15)])   # [ 5 12  7]

마스크를 통한 할당

마스크로 선택된 위치에 값을 기록하여 데이터를 제자리에서 정리할 수 있습니다. 예를 들어 이상치를 상한값으로 제한할 수 있습니다.

a = np.array([5, 12, 7, 20, 3])
a[a > 10] = 10
print(a)   # [ 5 10  7 10  3]

배열을 사용한 고급 인덱싱

정수 인덱스의 배열이나 목록을 전달하면 임의의 요소를 원하는 순서로 선택할 수 있으며, 같은 요소를 여러 번 선택할 수도 있습니다. 이 방식은 뷰가 아닌 복사본을 반환합니다.

a = np.array([10, 20, 30, 40, 50])
idx = [4, 0, 2, 2]
print(a[idx])   # [50 10 30 30]

2차원 고급 인덱싱

두 개의 인덱스 배열을 제공하여 특정 (행, 열) 쌍을 선택합니다. 여기서는 대각선 양 끝의 요소를 가져옵니다.

m = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
rows = [0, 2]
cols = [0, 2]
print(m[rows, cols])   # [1 9]

np.where를 사용한 조건부 선택

np.where(cond, x, y)는 조건이 참인 위치에서는 x의 요소를, 그렇지 않은 위치에서는 y의 요소를 반환합니다. 벡터화된 조건문과 같습니다.

a = np.array([-2, 5, -7, 3])
print(np.where(a < 0, 0, a))   # [0 5 0 3]  (clip negatives)

np.where로 인덱스 찾기

인수를 하나만 사용하여 호출하면 np.where(cond)는 조건이 성립하는 위치의 인덱스를 반환합니다.

a = np.array([10, 20, 30, 40])
print(np.where(a > 15))   # (array([1, 2, 3]),)

빠른 확인

인덱싱 실력을 확인해 보세요.

복습

선택 기법:

  • 기본 인덱스와 슬라이스(슬라이스는 뷰입니다)
  • 2차원 접근 m[row, col], :를 사용한 전체 축 선택
  • &와 |를 사용한 불리언 마스크
  • 인덱스 배열을 사용한 고급 인덱싱(복사본 반환)
  • 벡터화된 조건문에 사용하는 np.where(cond, x, y)

자주 묻는 질문

“인덱싱, 슬라이싱, 고급 인덱싱” 강의는 무료인가요?

네 — “인덱싱, 슬라이싱, 고급 인덱싱” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Learn AI with Python 강의 전체를 잠금 해제할 수 있습니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.

“인덱싱, 슬라이싱, 고급 인덱싱”에서 뭘 배우나요?

기본 슬라이싱, 불리언 마스킹, 고급 인덱싱, 조건부 선택을 위한 np.where()를 다룹니다. 브라우저에서 직접 실행하는 실습 코드로 Learn AI with Python을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Learn AI with Python을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Learn AI with Python은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“인덱싱, 슬라이싱, 고급 인덱싱” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Learn AI with Python 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Learn AI with Python 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 배열 생성 및 속성
  2. 인덱싱, 슬라이싱, 고급 인덱싱
  3. 브로드캐스팅과 벡터화 연산
  4. NumPy를 활용한 선형대수
← Learn AI with Python(으)로 돌아가기