Files
python-examples/doc/29_numpy.md
2025-01-23 11:02:27 +09:00

2.3 KiB

Numpy : 파이썬의 강력한 수치 계산 도구

NumPy는 Numerical Python의 줄임말로, 파이썬에서 과학 계산, 수치 분석 등을 효율적으로 수행하기 위한 필수적인 라이브러리입니다. 특히, **다차원 배열(ndarray)**을 효과적으로 다루고 벡터화 연산을 지원하여 빠르고 효율적인 수치 계산을 가능하게 합니다.

  • 빠른 속도: C 언어로 작성된 내부 코드를 사용하여 파이썬 리스트보다 훨씬 빠른 연산을 수행합니다.
  • 편리한 사용법: 다양한 함수와 메서드를 제공하여 복잡한 수치 계산을 간단하게 수행할 수 있습니다.
  • 대규모 데이터 처리: 대용량 데이터를 효율적으로 처리할 수 있는 기능을 제공합니다.
  • 다양한 라이브러리와의 호환성: SciPy, Pandas, Matplotlib 등 다양한 과학 계산 라이브러리와 호환됩니다.

NumPy의 주요 특징

  • 다차원 배열(ndarray): NumPy의 핵심 데이터 구조입니다. 행렬, 벡터, 텐서 등 다양한 형태의 데이터를 효율적으로 저장하고 연산할 수 있습니다.
  • 벡터화 연산: 반복문 없이 배열 전체에 대한 연산을 한 번에 수행하여 속도를 크게 향상시킵니다.
  • 선형대수 연산: 행렬 곱셈, 역행렬, 고유값 분해 등 선형대수 연산을 위한 다양한 함수를 제공합니다.
  • 난수 생성: 다양한 분포의 난수를 생성할 수 있는 기능을 제공합니다.
  • 브로드캐스팅: shape이 다른 배열 간의 연산을 자동으로 처리하는 기능입니다.

주요 함수

  • ndarray 생성: np.array(), np.zeros(), np.ones(), np.arange()
  • 배열 연산: +, -, *, /, ** 등의 산술 연산자, dot 함수를 이용한 행렬 곱셈 등
  • 배열 조작: reshape(), transpose(), flatten(), concatenate()
  • 선형대수: linalg 모듈을 이용한 행렬 분해, 역행렬 계산 등
  • 통계: mean(), std(), sum(), max(), min()
import numpy as np

# 1차원 배열 생성
arr = np.array([1, 2, 3, 4, 5])

# 2차원 배열 생성
arr2d = np.array([[1, 2, 3], [4, 5, 6]])

# 배열 연산
result = arr + 2
print(result)  # [3 4 5 6 7]

# 행렬 곱셈
result = np.dot(arr2d, arr2d.T)
print(result)

# 난수 생성
random_numbers = np.random.rand(3, 3)
print(random_numbers)