넘파이 기능 명단
1. 배열 생성
import numpy as np
<!-- -->
# 기본 배열 생성
arr1 = np.array([1, 2, 3, 4, 5]) # 1차원 배열
arr2 = np.array([1, 2, 3], [4, 5, 6](1-2-3-4-5-6.html)) # 2차원 배열
<!-- -->
# 특수 배열 생성
zeros = np.zeros((3, 4)) # 0으로 채운 배열
ones = np.ones((2, 3)) # 1로 채운 배열
empty = np.empty((2, 3)) # 초기화되지 않은 배열
eye = np.eye(3) # 단위행렬
arange = np.arange(0, 10, 2) # 범위 배열
linspace = np.linspace(0, 1, 5) # 균등 간격 배열
2. 배열 연산
<!-- -->
# 기본 산술 연산
arr = np.array([1, 2, 3])
arr + 2 # 각 원소에 2 더하기
arr - 2 # 각 원소에서 2 빼기
arr * 2 # 각 원소에 2 곱하기
arr / 2 # 각 원소를 2로 나누기
arr ** 2 # 각 원소의 제곱
<!-- -->
# 행렬 연산
a = np.array([1, 2], [3, 4](1-2-3-4.html))
b = np.array([5, 6], [7, 8](5-6-7-8.html))
np.dot(a, b) # 행렬 곱
a.T # 전치행렬
np.linalg.inv(a) # 역행렬
3. 배열 인덱싱
arr = np.array([1, 2, 3], [4, 5, 6], [7, 8, 9](1-2-3-4-5-6-7-8-9.html))
<!-- -->
# 기본 인덱싱
arr[0] # 첫 번째 행
arr[0, 1] # 첫 번째 행, 두 번째 열
arr[:2] # 처음 두 행
arr[:, 1] # 두 번째 열 전체
<!-- -->
# 불린 인덱싱
mask = arr > 5
arr[mask] # 5보다 큰 원소만 선택
<!-- -->
# 팬시 인덱싱
arr[0, 2](0-2.html) # 첫 번째와 세 번째 행 선택
4. 배열 변형
arr = np.array([1, 2, 3, 4, 5, 6])
<!-- -->
# 형태 변경
arr.reshape(2, 3) # 2x3 배열로 변경
arr.resize(2, 3) # 크기 변경 (원본 변경)
arr.ravel() # 1차원으로 평탄화
arr.transpose() # 축 교환
<!-- -->
# 배열 결합
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
np.concatenate([a, b]) # 배열 연결
np.vstack([a, b]) # 수직 스택
np.hstack([a, b]) # 수평 스택
5. 통계 함수
arr = np.array([1, 2, 3, 4, 5])
<!-- -->
# 기본 통계
arr.sum() # 합계
arr.mean() # 평균
arr.std() # 표준편차
arr.var() # 분산
arr.min() # 최솟값
arr.max() # 최댓값
arr.argmin() # 최솟값의 인덱스
arr.argmax() # 최댓값의 인덱스
6. 난수 생성
<!-- -->
# 난수 생성
np.random.rand(3, 2) # 0~1 균일분포 난수
np.random.randn(3, 2) # 표준정규분포 난수
np.random.randint(1, 10, size=(3, 2)) # 정수 난수
np.random.choice([1, 2, 3], size=5) # 지정된 값에서 무작위 선택
7. 선형대수 연산
<!-- -->
# 선형대수
arr = np.array([1, 2], [3, 4](1-2-3-4.html))
np.linalg.eig(arr) # 고유값과 고유벡터
np.linalg.det(arr) # 행렬식
np.linalg.solve(a, b) # 선형방정식 해
8. 논리 연산
<!-- -->
# 논리 함수
a = np.array([True, False, True])
b = np.array([False, True, True])
np.logical_and(a, b) # AND 연산
np.logical_or(a, b) # OR 연산
np.logical_not(a) # NOT 연산
9. 파일 입출력
<!-- -->
# 파일 저장 및 로드
arr = np.array([1, 2, 3, 4, 5])
np.save('array.npy', arr) # 단일 배열 저장
np.savez('arrays.npz', a=arr, b=arr) # 여러 배열 저장
loaded_arr = np.load('array.npy') # 배열 로드