Python
numpy - broadcasting 연산
- -
📊 NumPy Broadcasting 시각화
서로 다른 shape의 배열 간 연산을 자동으로 확장해주는 기능
🎯 Broadcasting 규칙
- 차원이 다르면 더 작은 배열의 앞쪽에 차원을 추가 (shape 앞에 1 추가)
- 각 차원을 비교하여 크기가 같거나, 둘 중 하나가 1이면 호환 가능
- 크기가 1인 차원은 다른 배열의 해당 차원 크기로 확장
예제 1: 2D 배열 + 1D 배열
1
2
3
4
5
6
(2, 3)
+
10
20
30
(3,)
→
1
2
3
4
5
6
(2, 3)
+
10
20
30
10
20
30
(2, 3) 확장됨
→
11
22
33
14
25
36
(2, 3)
Broadcasting 과정:
(3,) → (1, 3) → (2, 3)로 자동 확장
[10, 20, 30]이 각 행마다 반복 적용됨 (점선 테두리 = 확장된 부분)
(3,) → (1, 3) → (2, 3)로 자동 확장
[10, 20, 30]이 각 행마다 반복 적용됨 (점선 테두리 = 확장된 부분)
예제 2: 2D 배열 + 스칼라
1
2
3
4
(2, 2)
×
5
( )
→
1
2
3
4
(2, 2)
×
5
5
5
5
(2, 2) 확장됨
→
5
10
15
20
(2, 2)
Broadcasting 과정:
( ) → (1, 1) → (2, 2)로 자동 확장
스칼라 값 5가 모든 원소에 곱해짐 (점선 테두리 = 확장된 부분)
( ) → (1, 1) → (2, 2)로 자동 확장
스칼라 값 5가 모든 원소에 곱해짐 (점선 테두리 = 확장된 부분)
예제 3: (3, 1) 배열 + (1, 3) 배열
0
10
20
(3, 1)
+
0
1
2
(1, 3)
→
0
0
0
10
10
10
20
20
20
(3, 3) 확장됨
+
0
1
2
0
1
2
0
1
2
(3, 3) 확장됨
→
0
1
2
10
11
12
20
21
22
(3, 3)
Broadcasting 과정:
(3, 1) + (1, 3) → (3, 3)으로 확장
(3, 1) 배열은 가로로, (1, 3) 배열은 세로로 확장되어 덧셈 (점선 테두리 = 확장된 부분)
(3, 1) + (1, 3) → (3, 3)으로 확장
(3, 1) 배열은 가로로, (1, 3) 배열은 세로로 확장되어 덧셈 (점선 테두리 = 확장된 부분)
❌ Broadcasting 불가능한 경우
1
2
3
4
5
6
(2, 3)
+
1
2
(2,)
✗
불가능한 이유:
(2, 3)와 (2,)를 비교하면
마지막 차원: 3 ≠ 2 (둘 다 1이 아니므로 호환 불가)
(2, 3)와 (2,)를 비교하면
마지막 차원: 3 ≠ 2 (둘 다 1이 아니므로 호환 불가)
'Python' 카테고리의 다른 글
| pandas (0) | 2026.03.04 |
|---|---|
| NumPy 축(Axis) 개념 완벽 이해 (0) | 2026.03.03 |
| jupyterLab (0) | 2026.03.02 |
| UV (0) | 2026.03.01 |
| pyenv (0) | 2026.02.28 |
Contents
소중한 공감 감사합니다