넘파이 배열의 연산
import numpy as np
lst = [1, 2, 3, 4, 5]
arr = np.array(lst)
# 모든 요소에 한꺼번에 10을 더합니다.
result = + 10
print(result)
# 첫 번째 요소(인덱스 0)와 세 번째 요소(인덱스 2) 출력
print(result[0])
print(result[2])
힌트: 10을 더할 대상이 되는 넘파이 배열을 의미하는 변수명 arr을 사용합니다.
[11 12 13 14 15] 11 13
넘파이(NumPy)란?
NumPy는 "Numerical Python"의 약자로, 파이썬에서 수치 계산을 쉽고 빠르게 하는 핵심 라이브러리입니다.
넘파이가 왜 필요한가요?
| 비교 항목 | 파이썬 리스트 | 넘파이 배열(ndarray) |
|---|---|---|
| 연산 방식 | 반복문 필요 | 한 줄로 일괄 처리 |
| 처리 속도 | 느림 | 매우 빠름 (C언어 기반) |
| 메모리 효율 | 낮음 | 높음 |
벡터화 연산 (Vectorized Operation)
넘파이의 가장 큰 장점은 벡터화 연산입니다. 반복문 없이 배열 전체에 연산을 적용할 수 있습니다.
# 파이썬 리스트 방식 (느림)
lst = [1, 2, 3, 4, 5]
result = []
for x in lst:
result.append(x + 10)
# 넘파이 방식 (빠르고 간결)
arr = np.array([1, 2, 3, 4, 5])
result = arr + 10 # [11 12 13 14 15]
코드 분석
np.array(lst): 리스트를 넘파이 배열(ndarray)로 변환arr + 10: 배열의 모든 요소에 10을 더함 (브로드캐스팅)result[0]: 인덱스 0번 요소에 접근 (리스트와 동일한 방식)
브로드캐스팅(Broadcasting)
arr + 10에서 숫자 10이 배열의 크기에 맞게 자동 확장되어 연산됩니다. 이것을 브로드캐스팅이라고 합니다.
arr : [1, 2, 3, 4, 5]
+ 10 : [10, 10, 10, 10, 10] ← 자동 확장
결과 : [11, 12, 13, 14, 15]