NumPy-방송
용어 broadcasting산술 연산 중에 다른 모양의 배열을 처리하는 NumPy의 기능을 나타냅니다. 배열에 대한 산술 연산은 일반적으로 해당 요소에서 수행됩니다. 두 배열이 정확히 같은 모양이면 이러한 작업이 원활하게 수행됩니다.
예 1
import numpy as np
a = np.array([1,2,3,4])
b = np.array([10,20,30,40])
c = a * b
print c
출력은 다음과 같습니다.
[10 40 90 160]
두 배열의 차원이 다른 경우 요소 간 작업이 불가능합니다. 그러나 방송 기능으로 인해 NumPy에서 유사하지 않은 모양의 배열에 대한 작업은 여전히 가능합니다. 더 작은 배열은broadcast 더 큰 배열의 크기로 조정하여 호환되는 모양을 갖도록합니다.
다음의 규칙을 만족하면 방송이 가능합니다.
더 작은 배열 ndim 다른 것보다 모양에 '1'이 붙습니다.
출력 모양의 각 차원에있는 크기는 해당 차원에있는 입력 크기의 최대 값입니다.
특정 차원의 크기가 출력 크기와 일치하거나 해당 값이 정확히 1 인 경우 입력을 계산에 사용할 수 있습니다.
입력의 차원 크기가 1 인 경우 해당 차원의 첫 번째 데이터 항목이 해당 차원의 모든 계산에 사용됩니다.
배열 세트는 broadcastable 위의 규칙이 유효한 결과를 생성하고 다음 중 하나가 참인 경우-
배열은 정확히 같은 모양입니다.
배열은 동일한 수의 차원을 가지며 각 차원의 길이는 공통 길이 또는 1입니다.
차원이 너무 적은 배열은 길이 1의 차원이 앞에 붙은 모양을 가질 수 있으므로 위에서 언급 한 속성이 참입니다.
다음 프로그램은 방송의 예를 보여줍니다.
예 2
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.]]
다음 그림은 배열 방법을 보여줍니다. b 호환되도록 방송됩니다. a.