넘파이 기능 명단

🏷️ 머신러닝

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')       # 배열 로드