Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 NumPy 배열로 브로드캐스트

<시간/>

우리는 배열이 동일한 크기인 경우 서로 다른 배열 간의 산술 연산이 매월 발생한다는 것을 알고 있습니다. 그러나 모양에 '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.]
]