Logo
내 게시판 만들기
파이썬

NumPy 브로드캐스팅 — 다른 모양의 배열 연산

다람쥐 | 2026.04.27 13:00:56
조회 14 | 추천 0

브로드캐스팅(broadcasting)은 NumPy의 가장 영리한 기능 중 하나로, 「모양이 다른 배열들 간의 연산을 자동으로 맞춰 처리」해 줍니다.

명시적 반복 없이 직관적인 코드를 작성할 수 있게 해 줍니다.



기본 예시.

arr = np.array([1, 2, 3]); arr + 10 — [11, 12, 13].

스칼라 10이 자동으로 [10, 10, 10]으로 「방송(broadcast)」되어 모든 요소에 더해진 것입니다.

명시적 for 반복이 사라집니다.



더 복잡한 예시.

matrix = np.array([[1,2,3], [4,5,6]]); row = np.array([10, 20, 30]); matrix + row — 각 행에 row가 더해짐.

결과 [[11,22,33], [14,25,36]].

row가 「2번 복제되어」 matrix와 같은 모양이 된 효과입니다.



규칙.

두 배열의 끝 차원부터 비교.

1) 같은 크기면 OK.

2) 한쪽이 1이면 다른 쪽 크기로 확장.

3) 둘 다 다르면 오류.

이 규칙을 알면 대부분의 브로드캐스팅을 직관적으로 이해할 수 있습니다.



활용.

데이터 정규화 — (data - data.mean(axis=0)) / data.std(axis=0).

한 줄로 「열별 평균을 빼고 표준편차로 나누기」.

거리 계산 — (X[:,np.newaxis] - X)**2 — 모든 점 쌍의 차이.

익숙해지면 「머릿속의 수식이 그대로 코드로」 옮겨집니다.




한 줄 요약


브로드캐스팅은 모양이 다른 NumPy 배열의 연산을 자동으로 맞춰 처리합니다.

스칼라+배열, 벡터+행렬 같은 연산이 자연스럽게 되어 명시적 반복이 사라집니다.




더 알아볼 것


- np.newaxis — 차원 추가

- 브로드캐스팅 함정 — 의도하지 않은 차원

- einsum — 더 명시적인 연산

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
101 별님이 26/04/27 12 0
100 부엉이 26/04/27 11 0
99 다람쥐 26/04/27 14 0
98 야옹이 26/04/27 15 0
97 구름이 26/04/27 18 0
96 곰돌이 26/04/27 15 0
95 부엉이 26/04/27 9 0
94 햇살이 26/04/27 9 0
93 멍뭉이 26/04/27 9 0
92 별님이 26/04/27 12 0
91 다람쥐 26/04/27 10 0
90 부엉이 26/04/27 25 0
89 구름이 26/04/27 8 0
88 토순이 26/04/27 13 0
87 토순이 26/04/27 10 0
86 햇살이 26/04/27 10 0
85 구름이 26/04/27 12 0
84 햇살이 26/04/27 13 0
83 야옹이 26/04/27 16 0
82 너구리 26/04/27 11 0
81 햇살이 26/04/27 8 0
80 토순이 26/04/27 26 0
79 다람쥐 26/04/27 12 0
78 야옹이 26/04/27 9 0
77 부엉이 26/04/27 10 0
76 별님이 26/04/27 10 0
75 햇살이 26/04/27 14 0
74 곰돌이 26/04/27 9 0
73 구름이 26/04/27 12 0
72 햇살이 26/04/27 6 0
신고하기

신고 사유를 선택해 주세요.