NumPy   넘파이

(2025-10-26)

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

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


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


3. 넘파이 자료형

  ㅇ 기본 컨테이너 객체 : ndarray
  ㅇ 객체 요소 자료형 : dtype
     - (int, float, complex, bool, string, datetime 등 다양한 세부형)
        . 例) numpy.zeros(30,dtype=np.uint8)
           .. 8 비트 부호 없는 정수 (unsigned 8-bit integer)로써, (0 ~ 255)
           .. 모두 0으로 채워진 30 크기의 1차원 배열을 만듬


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


5. 넘파이 사용 例) 

  ㅇ 넘파이 라이브러리 가져옴 
     - 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]]
  ㅇ 불리언 인덱싱 (Boolean Indexing)
     - a = np.array([10, 20, 30, 40, 50])
     - mask = a > 25        # [False False  True  True  True]
     - a[mask]              # [30 40 50]
     - a[a <= 30]           # [10 20 30]

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

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