NumPy 브로드캐스팅 기본

Beginner

소개

이 튜토리얼에서는 NumPy 라이브러리의 브로드캐스팅 (broadcasting) 개념을 소개합니다. 브로드캐스팅은 다양한 차원의 배열에 대해 수학적 연산을 수행하는 방법입니다.

VM 팁

VM 시작이 완료되면, 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접근하십시오.

때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 연산의 유효성 검사는 자동화될 수 없습니다.

학습 중에 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.

동일한 형태의 1 차원 배열 두 개 더하기

import numpy as np

a = np.array([1,2,3,4])
b = np.array([2,7,8,9])
c = a+b;
print(c)

출력 결과는 다음과 같습니다: [ 3 9 11 13]

서로 다른 형태의 1 차원 배열 두 개 더하기 시도

import numpy as np

a = np.array([4,5,6,7])
b = np.array([1,3,5,7,9,11,14])
c = a+b;

이것은 서로 다른 형태의 배열에 대해 연산을 수행할 수 없기 때문에 오류를 발생시킵니다.

브로드캐스팅을 사용하여 서로 다른 형태의 1 차원 배열 더하기

import numpy as np

a = np.array([4,5,6,7])
b = np.array([10])
c = a+b;

print(c)

이것은 배열 b 가 배열 a 전체에 브로드캐스팅되기 때문에 [14 15 16 17]을 출력합니다.

1 차원 배열을 2 차원 배열로 브로드캐스팅

import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([10, 20, 30])

print(a + b)

출력 결과는 다음과 같습니다:

[[11 22 33]
 [14 25 36]]

1 차원 배열은 2 차원 배열의 두 번째 축 (axis) 전체에 브로드캐스팅되어 각 열에 더해집니다.

서로 다른 차원의 배열 곱하기

import numpy as np

a = np.array([1, 2, 3])
b = np.array([[4, 5, 6], [7, 8, 9]])

print(a * b)

출력 결과는 다음과 같습니다:

[[ 4 10 18]
 [ 7 16 27]]

1 차원 배열은 2 차원 배열의 첫 번째 축 (axis) 전체에 브로드캐스팅되어 각 행에 곱해집니다.

요약

이 튜토리얼에서는 NumPy 라이브러리에서 브로드캐스팅 (broadcasting) 의 개념을 다루었습니다. 브로드캐스팅은 다양한 차원의 배열에 대해 수학적 연산을 수행하는 방법입니다. 또한 배열을 더하고 곱하는 것을 통해 브로드캐스팅이 어떻게 작동하는지 시연했습니다. 브로드캐스팅은 배열이 특정 조건을 만족하는 경우에만 수행될 수 있다는 점에 유의해야 합니다. 브로드캐스팅은 정보 손실이 발생하지 않는 경우에만 발생합니다.