-
파이썬 기초 : NumPy 연산을 효율적으로 처리하기 위한 라이브러리🐍 Python 2025. 1. 21. 14:31728x90
NumPy란?
NumPy(NumPy: Numerical Python)는 Python에서 수치 연산을 효율적으로 처리하기 위한 라이브러리입니다. 특히, 다차원 배열 객체 ndarray를 사용해 대규모 데이터 처리를 간단하고 빠르게 수행할 수 있습니다. 또한, 배열 및 행렬 연산, 선형대수, 푸리에 변환, 난수 생성 등의 기능을 제공합니다.
NumPy 설치
pip install numpy
NumPy의 핵심 요소
1. ndarray: 다차원 배열 객체
NumPy의 핵심 데이터 구조로, 리스트와 유사하지만 크기가 고정되고 동일한 데이터 타입만 저장 가능합니다.
import numpy as np # 1D 배열 arr1 = np.array([1, 2, 3]) # 2D 배열 arr2 = np.array([[1, 2], [3, 4]]) print(arr1) print(arr2)
# 넘파이로 1차원 배열을 만드는 방법 : 1차원은 배열이라고 백터라고도 부른다
주요 기능
1. 배열 생성
- 기본 배열 생성
np.array([1, 2, 3]) # 리스트를 배열로 변환 np.zeros((2, 3)) # 0으로 채워진 배열 np.ones((2, 3)) # 1로 채워진 배열 np.full((2, 3), 7) # 특정 값(7)으로 채워진 배열 np.eye(3) # 단위 행렬 (3x3) np.empty((2, 2)) # 초기화되지 않은 배열
- 연속적 값 배열 생성
np.arange(0, 10, 2) # 0부터 10까지 2씩 증가 np.linspace(0, 1, 5) # 0부터 1까지 5개의 균일한 간격
2. 난수 생성
np.random.rand(2, 3) # 0~1 사이의 난수 (균등 분포) np.random.randn(2, 3) # 표준 정규분포 난수 np.random.randint(0, 10, (2, 3)) # 정수 난수
3. 배열의 속성
arr = np.array([[1, 2, 3], [4, 5, 6]]) print(arr.shape) # 배열의 크기 (2, 3) print(arr.ndim) # 차원 (2) print(arr.size) # 총 원소 개수 (6) print(arr.dtype) # 데이터 타입 (int32 등)
4. 배열 연산
- 기본 연산
a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) print(a + b) # [5 7 9] print(a * b) # [4 10 18] print(a ** 2) # [1 4 9]
- 브로드캐스팅 서로 다른 크기의 배열 간 연산을 지원합니다.
a = np.array([1, 2, 3]) b = 2 print(a + b) # [3 4 5]
5. 배열 인덱싱과 슬라이싱
- 인덱싱
arr = np.array([[1, 2, 3], [4, 5, 6]]) print(arr[0, 1]) # 2
- 슬라이싱
print(arr[:, 1]) # 두 번째 열 print(arr[0, :]) # 첫 번째 행
6. 유용한 함수들
- 집계 함수
arr = np.array([1, 2, 3, 4]) print(np.sum(arr)) # 합계 print(np.mean(arr)) # 평균 print(np.max(arr)) # 최댓값 print(np.min(arr)) # 최솟값 print(np.std(arr)) # 표준편차
- 형태 변환
arr = np.array([[1, 2], [3, 4]]) print(arr.reshape((4, 1))) # 배열 형태 변경 print(arr.flatten()) # 1D 배열로 변환
7. 배열 결합과 분할
- 결합
a = np.array([[1, 2]]) b = np.array([[3, 4]]) print(np.vstack((a, b))) # 수직 결합 print(np.hstack((a, b))) # 수평 결합
- 분할
arr = np.array([[1, 2, 3], [4, 5, 6]]) print(np.hsplit(arr, 3)) # 수평 분할 print(np.vsplit(arr, 2)) # 수직 분할
NumPy의 주요 내장 함수
1. 배열 생성 함수
함수 설명 np.array() 입력 데이터를 배열로 변환합니다. np.zeros() 모든 요소가 0으로 초기화된 배열을 생성합니다. np.ones() 모든 요소가 1로 초기화된 배열을 생성합니다. np.empty() 초기화되지 않은 배열을 생성합니다. np.full() 특정 값으로 채워진 배열을 생성합니다. np.eye() 단위 행렬(대각선이 1인 행렬)을 생성합니다. np.arange() 특정 범위 내에서 일정 간격으로 숫자를 생성합니다. np.linspace() 시작과 끝 값을 기준으로 균등 간격의 숫자를 생성합니다. np.random.rand() 0~1 사이의 균일 분포 난수를 생성합니다. np.random.randint() 지정한 범위의 정수 난수를 생성합니다.
2. 배열 정보 확인 함수
함수 설명 np.shape 배열의 모양(크기)를 반환합니다. np.ndim 배열의 차원 수를 반환합니다. np.size 배열의 전체 요소 개수를 반환합니다. np.dtype 배열의 데이터 타입을 반환합니다. np.itemsize 배열 요소 하나의 크기(바이트 단위)를 반환합니다. np.nbytes 배열 전체 크기(바이트 단위)를 반환합니다.
3. 배열 연산 함수
함수 설명 np.add() 두 배열의 요소별 합을 계산합니다. np.subtract() 두 배열의 요소별 차를 계산합니다. np.multiply() 두 배열의 요소별 곱을 계산합니다. np.divide() 두 배열의 요소별 나눗셈을 계산합니다. np.dot() 행렬 곱셈(내적)을 계산합니다. np.sqrt() 배열의 각 요소에 대해 제곱근을 계산합니다. np.exp() 배열의 각 요소에 대해 지수(e^x)를 계산합니다. np.log() 배열의 각 요소에 대해 자연 로그를 계산합니다.
4. 통계 및 집계 함수
함수 설명 np.sum() 배열 요소의 합계를 계산합니다. np.mean() 배열 요소의 평균을 계산합니다. np.median() 배열 요소의 중앙값을 계산합니다. np.var() 배열 요소의 분산을 계산합니다. np.std() 배열 요소의 표준편차를 계산합니다. np.min() 배열 요소의 최솟값을 반환합니다. np.max() 배열 요소의 최댓값을 반환합니다. np.argmin() 배열 요소 중 최솟값의 인덱스를 반환합니다. np.argmax() 배열 요소 중 최댓값의 인덱스를 반환합니다.
5. 배열 변형 함수
함수 설명 np.reshape() 배열의 모양을 변경합니다. np.transpose() 배열의 축(axes)을 교환합니다. np.flatten() 배열을 1차원으로 평탄화합니다. np.ravel() 배열을 1차원으로 평탄화하며 원본 데이터에 영향을 미칩니다. np.concatenate() 두 배열을 연결합니다. np.stack() 새로운 축을 추가하여 배열을 쌓습니다. np.split() 배열을 특정 기준으로 분할합니다. np.hstack() 배열을 수평으로 쌓습니다. np.vstack() 배열을 수직으로 쌓습니다.
6. 논리 연산 및 조건 함수
함수 설명 np.all() 모든 요소가 참(True)인지 확인합니다. np.any() 하나라도 요소가 참(True)인지 확인합니다. np.where() 조건에 따라 배열 요소를 선택합니다. np.logical_and() 두 배열 요소의 논리 AND를 계산합니다. np.logical_or() 두 배열 요소의 논리 OR를 계산합니다. np.logical_not() 배열 요소의 논리 NOT을 계산합니다.
7. 기타 유용한 함수
함수 설명 np.unique() 배열의 고유값을 반환합니다. np.sort() 배열 요소를 정렬합니다. np.argsort() 정렬된 배열의 인덱스를 반환합니다. np.cumsum() 배열 요소의 누적 합계를 반환합니다. np.cumprod() 배열 요소의 누적 곱을 반환합니다. np.isclose() 두 배열의 요소가 일정 허용 오차 내에 있는지 확인합니다. np.isnan() 배열 요소가 NaN인지 확인합니다. 728x90'🐍 Python' 카테고리의 다른 글
파이썬 기초 : 판다스 실습 | 데이터 분석 (0) 2025.01.22 파이썬 기초 : Pandas(판다스) DataFrame과 Series, 빌트인 함수 (0) 2025.01.21 파이썬 기초 : Functions(함수), Lambda Expressions(람다 표현식) (0) 2025.01.21 파이썬 기초 : 조건문 , 반복문 (0) 2025.01.20 파이썬 기초 : 튜플(Tuple) (0) 2025.01.19