[Python] NumPy 핵심 요약 정리

감자·2026년 1월 12일

microsoft_dataschool

목록 보기
1/28
post-thumbnail

01. NumPy란?

파이썬의 고성능 과학 계산을 위한 필수 패키지

💡 주요 제공 객체

  • ndarray: 다차원 배열 객체. 파이썬 리스트 대비 효율적인 메모리 사용
  • masked arrays: 결측치 등 유효하지 않은 값을 가려두고 계산에서 제외할 수 있는 특수 배열
  • matrices: 행렬 연산에 특화된 2차원 객체

🚀 NumPy 배열의 특징

  • 고정된 크기: 생성 시 크기가 결정되어 고정됨 (연산 속도 향상)
  • 동일한 데이터 타입: 모든 요소가 동일한 메모리 크기를 가짐. 위치 계산 공식에 따른 매우 빠른 접근 속도
  • 효율적 계산: 대용량 데이터를 활용한 빠른 수학적/과학적 계산 가능

02. 벡터화 (Vectorization)

루프를 명시적으로 작성하지 않고, 배열의 전체 요소를 한 번에 처리하는 연산 방식

파이썬 리스트 계산

매 단계 객체 접근 및 타입 체크로 연산 속도 저하

data = list(range(1000000))
result = []
for i in data:
    result.append(i * 2)

넘파이 배열 계산

한 줄의 코드가 내부 C 루프에서 병렬 처리됨

import numpy as np
data = np.arange(1000000)
result = data * 2 

03. 브로드캐스팅 (Broadcasting)

모양이 다른 배열 간의 연산을 가능하게 하는 기능. 특정 조건 만족 시 작은 배열을 큰 배열 크기에 맞춰 자동으로 확장

✅ 성립 조건

  • 두 차원의 크기가 동일
  • 둘 중 하나의 차원 크기가 1
import numpy as np

# (3, 3) 행렬과 (3,) 벡터의 연산 예시
A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) 
B = np.array([10, 20, 30])                     

result = A + B # 브로드캐스팅 발생

04. 배열 생성 방법

1) 다른 구조에서 변환

  • List/Tuple: np.array() 함수에 전달하여 생성
  • 2차원: 중첩 리스트 활용 시 2차원 배열 생성

2) 자체 제공 함수

  • np.arange(start, stop, step): 특정 범위 수열 생성
  • np.zeros() / np.ones(): 0 또는 1로 채워진 배열 생성
  • np.eye(3): 3x3 단위 행렬 생성
  • np.full(shape, value): 특정 값으로 가득 찬 배열 생성
  • np.linspace(start, stop, num): 범위를 균등하게 나눈 배열 생성

05. 차원 변경 및 조작

Reshape

  • 배열의 요소 개수는 유지하며 모양만 변경
  • reshape(-1, 3): -1 사용 시 다른 차원에 맞춰 크기 자동 결정

펼치기 및 축 조작

  • flatten(): 항상 원본의 복사본(copy) 반환
  • ravel(): 가능할 경우 원본을 가리키는 뷰(view) 반환
  • transpose(): 배열의 축 순서 전체 재배열
  • swapaxes(): 두 개의 축을 맞바꿈

06. 주요 통계 함수 인자

sum, min, max 등의 함수에서 사용하는 주요 파라미터

  • axis: 계산을 수행할 축 방향 지정
  • keepdims: True 설정 시 연산 후에도 차원 수 유지
  • initial: 계산의 시작값 설정
  • where: 계산에 포함할 요소를 지정하는 불리언 배열
profile
제 별명이 감자입니다

0개의 댓글