우리는 배열이 동일한 크기인 경우 서로 다른 배열 간의 산술 연산이 매월 발생한다는 것을 알고 있습니다. 그러나 모양에 '1'이 붙은 더 작은 ndim으로 배열을 채워 배열 중 하나를 향상시켜 크기가 같지 않은 지우기를 수행하고 여전히 산술 연산을 적용할 수 있는 시나리오가 있습니다. 따라서 기본적으로 브로드캐스팅과 배열은 모양을 원하는 모양으로 변경하는 것을 의미합니다.
배열 Boradcasting의 규칙
-
다른 것보다 작은 ndim을 가진 배열은 모양에 '1'이 추가됩니다.
-
출력 모양의 각 차원의 크기는 해당 차원의 입력 크기의 최대값입니다.
-
특정 차원의 크기가 출력 크기와 일치하거나 값이 정확히 1인 경우 입력을 계산에 사용할 수 있습니다.
-
입력의 차원 크기가 1인 경우 해당 차원의 첫 번째 데이터 항목이 해당 차원의 모든 계산에 사용됩니다.
예
아래 예는 numpy 배열을 사용하여 배열 조작 중에 브로드캐스팅이 어떻게 발생하는지 보여줍니다.
import numpy as np a = np.array([[0.0,0.0,0.0],[10.0,10.0,10.0],[20.0,20.0,20.0],[30.0,30.0,30.0]]) b = np.array([1.0,2.0,3.0]) print 'First array:' print a print '\n' print 'Second array:' print b print '\n' print 'First Array + Second Array' print a + b
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
First array: [ [ 0. 0. 0.] [ 10. 10. 10.] [ 20. 20. 20.] [ 30. 30. 30.] ] Second array: [ 1. 2. 3.] First Array + Second Array [ [ 1. 2. 3.] [ 11. 12. 13.] [ 21. 22. 23.] [ 31. 32. 33.] ]