# 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()` 등 ```python 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) ```