[파이썬] 브로드캐스팅(Broadcasting)이란?
NumPy에서 반복문 없이, 차원이 다른 배열 간 연산을 가능하게 해주는 핵심 기능
📌 브로드캐스팅이 필요한 이유
NumPy를 사용하다 보면 이런 코드를 자주 보게 됩니다.
여기서 10
은 사실 [10, 10, 10]
처럼 자동으로 확장되어 연산됩니다.
이러한 동작이 바로 브로드캐스팅(Broadcasting) 입니다.
브로드캐스팅은 형상이 다른 배열 간의 연산을 자동으로 가능하게 해주는 규칙입니다.
📚 브로드캐스팅을 사용하는 이유
✅ 1. 반복문 없이 코드 간결화
브로드캐스팅 덕분에 복잡한 반복문 없이 간단하게 연산을 표현할 수 있습니다.
✅ 2. 연산 속도 향상
브로드캐스팅은 NumPy 내부적으로 C언어 기반의 최적화된 연산을 사용합니다.
반복문보다 훨씬 빠르고, 대규모 데이터 처리에 유리합니다.
✅ 3. 메모리 효율성
브로드캐스팅은 가상 확장만 합니다.
즉, 실제로 [10, 10, 10]
이라는 배열을 만들지 않아도 됩니다.
🔍 브로드캐스팅 예시
1. 스칼라 + 벡터
2. 행벡터 + 열벡터
출력:
→ (3,1) + (1,3) = (3,3)
⚠️ 주의할 점: 브로드캐스팅 규칙
NumPy는 다음 규칙에 따라 브로드캐스팅을 수행합니다:
-
뒤에서부터 비교
-
차원이 맞거나,
-
한쪽이 1이면 확장 가능
-
-
두 차원이 모두 다르고, 1도 아니면 오류
예시:
🎯 실전에서의 활용
-
이미지 밝기 조절:
image + [10, 10, 10]
-
시간별 판매량 + 평균값 비교
-
통계 기반 정규화 연산:
(X - mean) / std
📝 마무리
브로드캐스팅은 단순히 “자동 확장”이 아닙니다.
데이터 과학, 이미지 처리, 머신러닝 등 다양한 분야에서 연산을 간결하고 효율적으로 수행하게 해주는 필수 기능입니다.
차원이 안 맞아도 걱정하지 마세요. NumPy가 알아서 맞춰줍니다!
다만, 그 규칙은 반드시 이해하고 써야 합니다.
댓글
댓글 쓰기