데이터

제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 02-1

Leah (리아) 2025. 9. 21. 20:43
반응형

Chapter 02. 데이터 핸들링을 위한 Numpy와 Pandas

 

01. Numpy란?

  • Numpy는 파이썬에서 숫자 데이터를 효율적으로 처리하기 위한 핵심 라이브러리입니다.
  • 주요 특징:
    • 빠르고 메모리 효율적인 배열 연산 지원
    • 파이썬 리스트보다 강력한 다차원 배열(ndarray) 제공
    • 선형대수, 푸리에 변환, 난수 생성 등 다양한 수학 함수 포함
  • 활용 분야: 데이터사이언스, 머신러닝, 과학적 컴퓨팅 등

02. Numpy 배열(ndarray)

  • 리스트와의 차이
    • 리스트: 다양한 타입을 혼합해 저장 가능
    • Numpy 배열: 동일한 타입만 저장 가능, 더 빠르고 메모리 효율적
  • 생성 방법
import numpy as np

# 기본 생성
arr = np.array([1, 2, 3, 4])

# 초기화 배열
np.zeros(5)            # [0. 0. 0. 0. 0.]
np.ones((2,3))         # 2x3 배열, 모든 값 1
np.full((3,3), 7)      # 3x3 배열, 모든 값 7

# 연속된 값
np.arange(0, 10, 2)    # [0 2 4 6 8]
np.linspace(0, 1, 5)   # [0.   0.25 0.5  0.75 1. ]

03. 배열 차원 변경

  • 차원(Dimension): 배열 데이터가 배치된 축(axis)의 개수
    • 1차원: 벡터
    • 2차원: 행렬
    • 3차원 이상: 텐서
  • 주요 함수
arr.reshape(newshape)   # 차원 변경
arr.flatten()           # 다차원 → 1차원
arr.squeeze()           # 크기가 1인 차원 제거

04. 배열 간 연산

  • 유니버설 함수(ufunc): 배열 원소별 연산 지원
    • 사칙연산: np.add, np.subtract, np.multiply, np.divide
    • 지수/로그: np.exp, np.log
    • 삼각함수: np.sin, np.cos
  • 브로드캐스팅: 크기가 다른 배열 간 연산 가능 (작은 배열이 자동 확장됨)
  • 통계 함수
arr.mean(), arr.std(), arr.var()
arr.max(), arr.min(), arr.median(), arr.sum()

 

05. 인덱싱과 슬라이싱

  • 기본 인덱싱: 파이썬 리스트와 동일
    • 1차원 → arr[2]
    • 2차원 → arr[row, col]
  • 팬시 인덱싱: 리스트로 여러 인덱스를 한 번에 지정
arr = np.array([10, 20, 30, 40, 50])
arr[[0,3]]   # [10, 40]
  • 마스킹: 조건식을 활용한 인덱싱
arr[arr > 25]   # 조건에 맞는 값만 반환

 

 

* 이 글은 제로베이스 데이터사이언스 파트타임 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.


 

💡 생각 정리

리스트보다 Numpy 배열이 훨씬 빠르고 효율적이라는 점을 다시 느꼈다. 특히 반복문을 직접 돌리지 않고도 벡터화 연산으로 전체 데이터를 한 번에 처리할 수 있다는 것이 인상적이었다. 또한 차원과 축(axis)의 개념을 이해하면 데이터 구조를 자유롭게 변형하고 원하는 방식으로 다룰 수 있다는 것을 알게 되었다. 마지막으로 브로드캐스팅 기능은 다른 크기의 배열끼리도 연산을 가능하게 해주지만, 올바르게 작동하려면 배열의 호환 조건을 반드시 확인해야 한다는 점을 기억해야겠다.


🚀 적용점

  • 데이터 전처리: 결측값을 0이나 평균값으로 채울 때 np.full, np.mean 활용 가능
  • 통계 분석: 평균, 분산, 표준편차를 빠르게 계산
  • 머신러닝: 입력 데이터를 텐서 형태로 변환하고 연산 속도를 높이는 데 필수적
  • 실습 아이디어:
    • 난수 배열 생성 후 평균과 표준편차 비교
    • 2차원 배열 reshape으로 다양한 구조 변환
반응형