Python

numpy - broadcasting 연산

  • -
NumPy Broadcasting 시각화

📊 NumPy Broadcasting 시각화

서로 다른 shape의 배열 간 연산을 자동으로 확장해주는 기능

🎯 Broadcasting 규칙

  1. 차원이 다르면 더 작은 배열의 앞쪽에 차원을 추가 (shape 앞에 1 추가)
  2. 각 차원을 비교하여 크기가 같거나, 둘 중 하나가 1이면 호환 가능
  3. 크기가 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]이 각 행마다 반복 적용됨 (점선 테두리 = 확장된 부분)
예제 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가 모든 원소에 곱해짐 (점선 테두리 = 확장된 부분)
예제 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) 배열은 세로로 확장되어 덧셈 (점선 테두리 = 확장된 부분)
❌ Broadcasting 불가능한 경우
1
2
3
4
5
6
(2, 3)
+
1
2
(2,)
불가능한 이유:
(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

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.