[Python] NumPy 인덱싱 방법 4가지

해당 포스트에서는 Python 수치 연산에 많이 사용되는 NumPy 인덱싱 4가지 방법을 설명합니다.

python-4-ways-to-index-numpy

INTRO

데이터 과학에서 NumPy는 수치 계산을 위해 Python에서 널리 사용되는 라이브러리입니다. NumPy는 대용량 데이터 세트로 빠른 계산을 수행할 수 있어 데이터 과학자들 사이에서 인기가 높은 편이며, 배열에서 특정 데이터를 추출하기 위해서는 NumPy 배열 인덱싱 방법을 아는 것이 중요합니다. 특정 데이터 추출, 슬라이싱, 팬시 인덱싱 및 부울 인덱싱을 포함하여 NumPy를 인덱싱하는 다양한 방법이 있습니다.

아래에서는 NumPy 배열을 인덱싱하는 네 가지 방법을 예시와 함께 설명합니다.

목차

  1. 특정 데이터만 추출
  2. 슬라이싱(Slicing)
  3. 팬시 인덱싱(Fancy Indexing)
  4. 불린 인덱싱(Boolean Indexing)

1. 특정 데이터 추출

특정 데이터 추출은 NumPy 배열을 인덱싱하는 가장 간단하고 직접적인 방법 중 하나입니다. 데이터를 추출하려는 위치의 인덱스 값을 알고 있는 경우 해당 인덱스 값을 지정하기만 하면 해당 위치의 데이터가 반환됩니다.

아래 예제에는 5개의 요소가 있는 a라는 배열이 있습니다. 인덱스 값을 3으로 지정하여 배열의 네 번째 위치에서 데이터를 추출합니다. 그러면 출력 40이 반환됩니다.

import numpy as np

a = np.array([10, 20, 30, 40, 50])

print(a[3])
40

2. 슬라이싱

슬라이싱은 연속 인덱스에서 ndarray를 추출하는 또 다른 방법입니다. 시작 및 끝 인덱스를 기반으로 NumPy 배열의 일부를 추출하는 데 일반적으로 사용되는 방법입니다. 슬라이싱의 일반적인 구문은 [start:stop:step]이며, 마지막 step 부분은 생략할 수 있습니다.

아래 예제에서는 배열 a를 인덱스 위치 1에서 4로 슬라이스하여 출력 [20 30 40]을 반환합니다. 여기서 시작 인덱스는 1, 정지 인덱스는 4이고 단계 값이 지정되지 않았으므로 기본값은 1입니다.

import numpy as np

a = np.array([10, 20, 30, 40, 50])

print(a[1:4])
[20 30 40]

3. 팬시(Fancy) 인덱싱

팬시(Fancy) 인덱싱은 특정 인덱싱 집합을 리스트 또는 ndarray 형태로 지정하고 해당 위치에 있는 데이터의 ndarray를 반환하는 방법입니다. NumPy 배열을 인덱싱하는 강력한 방법입니다.

아래 예제에는 5개의 요소가 있는 배열 a가 있습니다. 배열 a에서 추출하려는 인덱스를 지정하는 목록 "인덱스"를 만듭니다. "인덱스" 목록을 매개변수로 사용하여 목록에 지정된 위치에서 데이터를 추출합니다. 이렇게 하면 출력 [20 40 50]이 반환됩니다.

import numpy as np

a = np.array([10, 20, 30, 40, 50])
index = [1, 3, 4]

print(a[index])
[20 40 50]

4. 불린(Boolean) 인덱싱

부울 인덱싱은 NumPy 배열을 인덱싱하는 또 다른 강력한 방법입니다. 부울 값 집합을 기반으로 True에 해당하는 인덱스 위치에서 데이터의 ndarray를 반환하는 작업이 포함됩니다.

아래 예제에는 5개의 요소가 있는 배열 a가 있습니다. 배열의 각 요소에 대한 True/False 값을 지정하는 목록 "마스크"를 만듭니다. "마스크" 목록을 매개변수로 사용하여 True에 해당하는 인덱스 위치의 데이터를 추출합니다. 이렇게 하면 출력 [10 30 50]이 반환됩니다.

import numpy as np

a = np.array([10, 20, 30, 40, 50])
mask = [True, False, True, False, True]

print(a[mask])
[10 30 50]

결론

이번 포스트에서 설명한 NumPy 데이터 추출 방법들은 Python에서 매우 유용하게 사용되며, 데이터 분석 및 처리 작업에서 필수적인 기술입니다. 데이터를 효율적으로 추출하여 분석할 수 있도록 위 방법들을 숙지하고 적절히 활용하는 것이 중요합니다.

관련 링크

[1] [Python] 문자열 리스트에서 특정 변수 제거/추가 후 출력하기
[2] [Python] 문자열 튜플(tuple) 내 특정 단어 빈도 카운트
[3] [Python] numList 변수에서 숫자 정수 13 개수 세기


banner-request-analysis