NumPy   넘파이

(2025-07-25)

1. NumPy (넘파이)  :  (숫자 배열효율적 이용)

  ㅇ 숫자 배열효율적 사용을 위한 라이브러리로써, 고속 연산이 가능

  ㅇ (기능)
     - 벡터, 배열, 행렬 등의 생성 및 연산
     - 난수 생성 (np.random)
     - 선형 대수 (np.linalg)
     - 푸리에 변환 (np.fft)
     - 브로드캐스팅, 벡터연산 지원

  ㅇ (자료형)
     - 기본 컨테이너 객체 : ndarray
     - 객체 요소 자료형 : dtype
        . (int, float, complex, bool, string, datetime 등 다양한 세부형)

  ㅇ (특징)
     - 파이썬 기본 리스트에 비해 메모리 효율성연산 속도가 매우 높음
     - 벡터연산(Vectorized operation) 지원 → 반복문 없이 전체 연산
     - 브로드캐스팅(Broadcasting) 지원 → 크기가 다른 배열 간에도 연산 가능
     - 대규모 과학/공학 계산, 데이터 분석, 머신러닝 라이브러리(Pandas, TensorFlow 등) 의 기반

  ㅇ 例) 
     - 넘파이 라이브러리 가져옴 
        . import numpy as np
     - 배열 생성 
        . x = np.array([1,2,3])
        . y = np.array([4,5,6])
        . z = x + y     # [5 7 9] (3 요소 벡터)
     - 배열 접근
        . z[0]          # 5
        . z[0] = 10     # [10 7 9] 
     - 복사와 참조
        . a = np.array([1, 2, 3])
        . b = a            # 참조 복사 (주소 공유)
        . c = a.copy()     # 내용 복사 (독립 객체)
        . a[0] = 99
        . b                # [99  2  3]
        . c                # [1 2 3]
     - 벡터 속성
        . vec = np.array([1, 2, 3, 4])
        . vec.mean()     # 2.5
        . vec.shape      # (4,)  (벡터 모양)
        . vec.size       # 4  (벡터 사이즈)
        . vec.ndim       # 1  (차원 수)
     - 행렬 속성
        . matrix = np.array([[1, 2, 3], [4, 5, 6]])     # 2×3 행렬
        . matrix.shape     # (2, 3)
        . matrix[0, 1]     # 2
        . matrix[:, 1]     # [2 5]  (두 번째 열)
        . matrix.T         # 전치행렬 [[1 4] [2 5] [3 6]]
     - 연속된 값 생성
        . np.arange(0, 10, 2)      # [0 2 4 6 8]
        . np.linspace(0, 1, 5)     # [0.   0.25 0.5 0.75 1. ]
        . np.zeros((2, 3))         # [[0. 0. 0.] [0. 0. 0.]]
        . np.ones((2, 2))          # [[1. 1.] [1. 1.]]
        . np.eye(3)                # 단위행렬 (3×3)
     - 브로드캐스팅 (Broadcasting)
        . A = np.array([[1, 2, 3], [4, 5, 6]])
        . b = np.array([10, 20, 30])
        . A + b     # [[11 22 33] [14 25 36]]
     - 조건 및 논리 연산
        . a = np.array([1, 2, 3, 4, 5])
        . a[a > 2]     # [3 4 5]
        . np.where(a % 2 == 0, '짝수', '홀수')     # ['홀수' '짝수' '홀수' '짝수' '홀수']
     - 수학/통계 함수
        . data = np.array([1, 2, 3, 4, 5])
        . np.mean(data)     # 3.0
        . np.std(data)      # 표준편차 1.414...
        . np.sum(data)      # 15
        . np.max(data), np.min(data)     # (5, 1)
        . np.median(data)     # 3.0
     - 선형대수 연산 (np.linalg)
        . A = np.array([[1, 2], [3, 4]])
        . b = np.array([5, 6])
        . np.dot(A, b)         # 행렬-벡터 곱 [17 39]
        . np.linalg.inv(A)     # 역행렬 [[-2.   1. ] [1.5 -0.5]]
        . np.linalg.det(A)     # 행렬식 (-2.0)
        . np.linalg.eig(A)     # 고유값고유벡터
     - 난수 생성 (np.random)
        . np.random.rand(2, 3)            # 0~1 사이 균등분포
        . np.random.randn(3)              # 표준정규분포 (평균0, 표준편차1)
        . np.random.randint(0, 10, 5)     # 0~9 정수 5개
     - 고급 응용 (Reshape, Stack, Flatten 등)
        . a = np.arange(6)     # [0 1 2 3 4 5]
        . a.reshape(2, 3)      # [[0 1 2] [3 4 5]]
        . a.flatten()          # [0 1 2 3 4 5]
        . np.hstack((x, y))    # [1 2 3 4 5 6]
        . np.vstack((x, y))    # [[1 2 3] [4 5 6]]

파이썬 활용
1. 파이썬 사용 예   2. 파이썬 슬라이싱   3. 파이썬 정규표현식   4. 파이썬 파일 처리   5. 파이썬 순열 구현   6. 파이썬 응용   7. 넘파이  
용어해설 종합 (단일 페이지 형태)

"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     [정보통신기술용어해설]