NumPy 슬라이싱 및 인덱싱

PythonBeginner
지금 연습하기

소개

NumPy 는 과학적 계산에 사용되는 널리 사용되는 Python 라이브러리입니다. NumPy 는 수치 데이터 분석에 유용한 고성능 배열 연산과 수학 함수를 제공합니다. 이 Lab 에서는 NumPy 의 슬라이싱 (slicing) 및 인덱싱 (indexing) 기능을 배우게 됩니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 96%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

배열 슬라이싱

슬라이싱은 인덱스 범위를 지정하여 배열의 하위 집합을 추출하는 과정입니다. NumPy 배열은 콜론 : 연산자를 사용하여 슬라이싱할 수 있습니다.

Python 셸 열기

터미널에서 다음 명령을 입력하여 Python 셸을 엽니다.

python3

NumPy 임포트 (Import)

NumPy 는 이미 설치되어 있으므로 Python 코드에서 임포트할 수 있습니다.

import numpy as np

1 차원 배열 슬라이싱

## 1 차원 배열 생성
a = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

## 인덱스 2 부터 인덱스 5 까지 배열 슬라이싱
print(a[2:5])

출력:

[2 3 4]

다차원 배열 슬라이싱

다차원 배열도 슬라이싱할 수 있습니다.

## 2 차원 배열 생성
b = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]])

## 처음 두 행과 처음 두 열 슬라이싱
print(b[:2, :2])

출력:

[[0 1]
 [3 4]]

Boolean 배열을 이용한 인덱싱

부울 인덱싱은 조건을 기반으로 배열을 필터링할 수 있는 강력한 기능입니다. 기존 배열에 논리 연산자를 적용하여 부울 배열을 생성할 수 있습니다.

1 차원 배열 생성

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

조건 (c > 5) 을 기반으로 부울 배열 생성

mask = c > 5
print(mask)

출력:

[False False False False False False  True  True  True  True]

부울 배열을 사용하여 원본 배열 필터링

print(c[mask])

출력:

[6 7 8 9]

Fancy Indexing (팬시 인덱싱)

팬시 인덱싱은 인덱스 배열을 사용하여 배열을 인덱싱하는 방법입니다. 이 기술을 사용하여 배열의 특정 요소 또는 하위 집합을 추출할 수 있습니다.

## 1 차원 배열 생성
d = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

## 인덱스 배열 생성
indices = np.array([1, 3, 5])

## 팬시 인덱싱을 사용하여 지정된 인덱스에서 요소 추출
print(d[indices])

출력:

[1 3 5]
  • 팬시 인덱싱을 사용하여 배열의 특정 요소에 값을 할당할 수도 있습니다.
## 1 차원 배열 생성
e = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

## 인덱스 배열 생성
indices = np.array([1, 3, 5])

## 지정된 인덱스에서 요소에 값 10 할당
e[indices] = 10
print(e)

출력:

[ 0 10  2 10  4 10  6  7  8  9]

요약

축하합니다! NumPy 슬라이싱 (Slicing) 및 인덱싱 (Indexing) 랩을 완료했습니다.

이 랩에서는 NumPy 배열의 슬라이싱 및 인덱싱의 기본 사항을 다루었습니다.

  • 슬라이싱을 사용하면 인덱스 범위를 지정하여 배열의 하위 집합을 추출할 수 있습니다.
  • 부울 인덱싱을 사용하면 조건을 기반으로 배열을 필터링할 수 있습니다.
  • 팬시 인덱싱을 사용하면 인덱스 배열을 사용하여 배열의 특정 요소 또는 하위 집합을 추출할 수 있습니다.