끄적이는 개발노트

260512_강의 정리 (NumPy) 본문

Python

260512_강의 정리 (NumPy)

크런키스틱 2026. 5. 13. 16:57
728x90

■ NumPy

  • 정의
    • Python에서 수치 계산(숫자 계산)을 빠르게 수행하기 위한 라이브러리
  • 목적
    • 벡터/행렬 계산
    • 대용량 데이터 처리
    • 과학 계산
    • 머신러닝 수학 연산
  • 다른 라이브러리 관계
    • NumPy : 배열(ndarray), 수학 계산
    • pandas : 데이터 분석/전처리
    • SciPy : 고급 수학/통계/신호처리
    • Matplotlib : 그래프 시각화
    • scikit-learn : 머신러닝
  • ndarray
    • NumPy의 핵심 객체
    • 다차원 배열 객체
    • 구조
      • 1차원 배열 : 벡터 (Vector)
      • 2차원 배열 : 행렬 (Matrix)
      • 3차원 이상 : 텐서 (Tensor)
  • NumPy 배열 특징
    1. 동질적 데이터 저장
      • 하나의 배열 안에 같은 데이터 타입만 저장
      • 계산 속도 향상을 위해서
    2. 연속 메모리 사용
      • 데이터를 메모리에 연속적으로 저장
      • 계산 속도 증가
      • CPU cache 효율 증가
      • 반복 계산 최적화
    3. 실제 메모리 저장 방식
      • 겉보기에는 2차원/3차원이지만, 실제 메모리에는 1차원처럼 연속 저장
      • Header에 메타정보 저장
        • ndim : 차원 수
        • shape : 배열 형태
        • dtype : 데이터 타입
        • strides : 이동 간격 (Byte 단위)
        • order : 행 우선 (C order) / 열 우선 (F order)
  • Broadcasting (브로드캐스팅)
    • 배열 크기가 달라도 자동으로 크기를 맞춰 계산
    • 뒤 차원부터 비교
    • ex) [1,2,3] + 1 => [2,3,4]
  • 벡터 연산
    • 요소 연산 (Element-wise)
      • 같은 위치끼리 계산
    • 내적 (Dot Product)
      • 벡터끼리 곱해서 더함
      • 두 벡터 방향이 얼마나 비슷한가?
      • 1 : 같은 방향 , 0 : 수직, -1 : 반대 방향
    • 코사인 유사도
      • 내적을 이용한 방향 유사성 측정
      • vs 상관계수
        • 코사인 유사도 : 방향 유사성
        • 상관계수 : 선형 관계
  • 행렬곱 (Matrix Multiplication)
    • 행렬곱은 요소곱과 다름
    • 조건 : 앞 행렬의 열 수 = 뒤 행렬의 행 수
    • ex) (2x3) x (3x2)
  • NumPy 주요 기능
    • numpy.random
      • 난수 생성
      • 지원
        • 정규분포
        • 카이제곱분포
        • t분포
        • F분포
    • numpy.fft
      • 푸리에 변환(Fast Fourier Transform)
      • 파동을 사인파/코사인파 조합으로 분해
      • 활용
        • 음성 분석
        • 신호 처리
        • 이미지 처리
    • numpy.polynomial
      • 다항식 계산 지원
      • 예시
        • 다항식 생성
        • 근 계산
        • 곡선 fitting
    • numpy.ma
      • Mask Array
      • 사용
        • 특정 값 숨기기
        • 특정 값 무시
        • 특정 값 결측치 처리
    • UFunc (Universal Function)
      • NumPy의 빠른 수학 함수
      • Python이 아니라 내부 C코드로 처리
      • 예시
        • np.sqrt()
        • np.exp()
        • np.sin()
  • 초월 함수
    • 로그 함수 (log)
      • 특징
        • 큰 값 압축
        • 확률 계산
        • 데이터 스케일 조정
      • 활용
        • 머신러닝
        • 통계
    • 지수 함수 (exp)
      • 특징
        • 급격한 증가/감소
      • 활용
        • 정규분포
        • 딥러닝
        • 확률 모델
    • 삼각 함수 (sin, cos)
      • 활용
        • 회전
        • 파동
        • 주기 데이터
        • 신호 처리
728x90