본문 바로가기
Programming (프로그래밍)/Python

[NumPy] NumPy 배열의 인덱싱과 슬라이싱

by 김조이1 2025. 1. 28.
728x90

NumPy 배열에서 원하는 데이터를 추출하는 방법

NumPy 배열은 Python 리스트처럼 인덱싱과 슬라이싱을 지원한다. 다만, NumPy 배열은 다차원 배열을 지원하므로 데이터를 보다 직관적이고 효율적으로 추출할 수 있다. 인덱싱과 슬라이싱은 데이터를 탐색하고 전처리할 때 매우 유용하다.

 

1. 인덱싱

import numpy as np

# 10x10 매트릭스 생성
mat = np.arange(0, 100).reshape(10, 10)

# 0번째 행, 1번째 열의 값 접근
print(mat[0, 1])  # 출력: 1

위 코드에서는 2D 배열에서 특정 요소를 추출한다. mat[0, 1]은 첫 번째 행(0)과 두 번째 열(1)에 위치한 값인 1을 반환한다.

 

2. 슬라이싱

NumPy 배열에서 슬라이싱은 부분 배열을 추출하는 데 유용하다.

 

1. 특정 열의 모든 값 가져오기: 이 코드는 첫 번째 열(인덱스 1)에 있는 모든 행의 값을 추출한다.

print(mat[:, 1])  # 출력: [ 1 11 21 31 41 51 61 71 81 91]

 

2. 특정 행의 모든 값 가져오기: 이 코드는 세 번째 행(인덱스 2)의 모든 열 값을 추출한다.

print(mat[2, :])  # 출력: [20 21 22 23 24 25 26 27 28 29]

 

3. 서브 매트릭스 추출하기: 위 코드는 3x3 크기의 서브 매트릭스를 원본 매트릭스에서 왼쪽 상단 구석을 기준으로 추출한다. 0:3은 첫 3개의 행, 0:3은 첫 3개의 열을 의미한다.

print(mat[0:3, 0:3])  # 출력:
# [[ 0  1  2]
#  [10 11 12]
#  [20 21 22]]
반응형