NumPy (Numerical Python)는 파이썬에서 행렬이나 대규모 다차원 배열을 쉽게 처리하는 등 강력한 수치 계산을 지원하는 파이썬 라이브러리입니다. 다차원 배열 객체인 ndarray를 중심으로 다양한 수학적 연산을 수행할 수 있습니다. 보통 넘파이라고 읽습니다.
| 기능 | 설명 | 주요 함수 |
|---|---|---|
| 배열 생성 | 리스트나 튜플을 배열로 변환 | np.array() |
| 0으로 채운 배열 생성 | np.zeros() | |
| 1로 채운 배열 생성 | np.ones() | |
| 특정 값으로 채운 배열 생성 | np.full() | |
| 연속된 숫자 배열 생성 | np.arange() | |
| 균등 간격 배열 생성 | np.linspace() | |
| 단위 행렬 생성 | np.eye() | |
| 배열 속성 확인 | 배열의 차원 확인 | .ndim |
| 배열의 형태(shape) 확인 | .shape | |
| 배열의 요소 개수 확인 | .size | |
| 배열의 데이터 타입 확인 | .dtype | |
| 배열 변형 | 배열 크기 변경 | .reshape() |
| 배열 1차원으로 변환 | .flatten() | |
| 차원 추가 | np.newaxis | |
| 배열 전치(Transpose) | .T | |
| 배열 연산 | 요소별 사칙연산 | +, -, *, / |
| 요소별 제곱 연산 | ** | |
| 배열의 내적 연산 | np.dot() 또는 @ | |
| 브로드캐스팅 연산 지원 | 자동 크기 확장 | |
| 배열 슬라이싱 | 특정 인덱스 접근 | arr[i, j] |
| 행/열 선택 | arr[i, :], arr[:, j] | |
| 범위 선택 (슬라이싱) | arr[start:end] | |
| 통계 및 집계 연산 | 배열의 합 | .sum() |
| 평균 계산 | .mean() | |
| 최대/최소 값 | .max(), .min() | |
| 표준편차 계산 | .std() | |
| 분산 계산 | .var() | |
| 난수 생성 | 0~1 사이 난수 배열 | np.random.rand() |
| 정수 난수 생성 | np.random.randint() | |
| 정규 분포 난수 생성 | np.random.randn() | |
| 난수 시드 고정 | np.random.seed() | |
| 배열 비교 및 조건 연산 | 요소별 비교 | >, <, == |
| 조건에 맞는 값 필터링 | arr[arr > 3] | |
| 특정 조건 값 변경 | np.where(condition, x, y) | |
| 배열 정렬 | 오름차순 정렬 | np.sort() |
| 내림차순 정렬 | np.sort(arr)[::-1] | |
| 특정 축을 기준으로 정렬 | np.sort(arr, axis=0) | |
| 행렬 연산 | 행렬 곱셈 | np.dot() 또는 @ |
| 역행렬 계산 | np.linalg.inv() | |
| 행렬식 계산 | np.linalg.det() | |
| 고유값 및 고유벡터 | np.linalg.eig() | |
| 파일 입출력 | 배열을 파일로 저장 | np.save() |
| 여러 배열을 저장 | np.savez() | |
| CSV 파일로 저장 | np.savetxt() | |
| CSV 파일 불러오기 | np.loadtxt() |
pip install numpy import numpy as np # 리스트로부터 배열 생성
arr = np.array([1, 2, 3, 4, 5])
print(arr) # [1 2 3 4 5] arr2d = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2d)
# [[1 2 3]
# [4 5 6]] print(arr2d.shape) # (2, 3) -> 2행 3열
print(arr2d.ndim) # 2 -> 차원 수
print(arr2d.dtype) # int32 (또는 int64)
print(arr2d.size) # 6 -> 전체 요소 개수 np.zeros((3, 3)) # 3x3 영행렬
np.ones((2, 4)) # 2x4 1로 채운 행렬
np.eye(4) # 4x4 단위행렬
np.full((2, 3), 7) # 2x3 모든 원소가 7인 행렬
np.arange(10) # 0부터 9까지의 배열 생성
np.linspace(0, 1, 5) # 0~1 사이 5개 균등 분포 값 a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b) # [5 7 9]
print(a - b) # [-3 -3 -3]
print(a * b) # [4 10 18]
print(a / b) # [0.25 0.4 0.5]
print(a ** 2) # [1 4 9] arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr[0, 2]) # 첫 번째 행, 세 번째 열 (3)
print(arr[1, :]) # 두 번째 행 전체 [4, 5, 6]
print(arr[:, 1]) # 두 번째 열 전체 [2, 5, 8]
print(arr[0:2, 1:3]) # (0~1행, 1~2열) arr = np.array([[1, 2, 3], [4, 5, 6]])
reshaped = arr.reshape(3, 2)
flattened = arr.flatten()
print(reshaped)
# [[1 2]
# [3 4]
# [5 6]]
print(flattened) # [1 2 3 4 5 6] a = np.array([[1], [2], [3]])
b = np.array([4, 5, 6])
print(a + b)
# [[5 6 7]
# [6 7 8]
# [7 8 9]] arr = np.array([1, 2, 3, 4, 5])
print(arr.sum()) # 15
print(arr.mean()) # 3.0
print(arr.max()) # 5
print(arr.min()) # 1
print(arr.std()) # 표준편차
print(arr.var()) # 분산 np.random.seed(42) # 난수 고정
print(np.random.rand(3)) # 0~1 사이 난수 3개
print(np.random.randint(1, 10, (2, 3))) # 1~10 사이 정수 (2x3) A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
print(np.dot(A, B)) # 행렬 곱
print(A @ B) # 행렬 곱 (동일)
print(np.linalg.inv(A)) # 역행렬
print(np.linalg.det(A)) # 행렬식
print(np.linalg.eig(A)) # 고유값 & 고유벡터 NumPy는 데이터 분석, 머신러닝, 과학 연산 등에 필수적인 라이브러리로, 다차원 배열을 빠르고 효율적으로 다룰 수 있습니다! 🚀
요양원 선택 전 반드시 확인해야 할 체크리스트를 공개합니다. 공식 평가 자료 조회법, 방문 시 확인…
공공기관 채용 비리의 실태와 피해 지원자의 대응법을 정리했습니다. 채용 비리 신고 방법, 공익신고자 보호제도, 취준생…
주식 손실을 세금 절약에 활용하는 합법적 방법을 공개합니다. 해외주식 손익통산, ISA 계좌 활용, 연금계좌 절세까지…
배달이 예상 시간보다 크게 늦으면 취소·환불을 요청할 수 있습니다. 배달앱별 지연 취소 방법과 잘못 배달됐을…
통신비 절약의 핵심은 요금제 최적화입니다. 내 데이터 사용량 확인법, 알뜰폰 전환 비교, 위약금 없이 요금제…