[파이썬][Numpy] 브로드캐스팅 (Broadcasting)을 통한 배열간의 연산 수행 방법 예제

Numpy의 브로드캐스팅을 사용하여 배열 간의 연산을 수행하는 방법을 예제로 설명하겠습니다. 브로드캐스팅은 서로 다른 크기의 배열 간에도 적용되며, 크기를 자동으로 맞춰 연산을 수행하는 강력한 기능입니다.

예제 1: 브로드캐스팅을 사용한 스칼라와 배열의 연산

import numpy as np

# 배열 생성
arr = np.array([1, 2, 3, 4, 5])

# 스칼라 값을 배열에 더하기
result = arr + 2  # 배열의 모든 요소에 스칼라 2를 더함

print(result)

위의 코드에서 arr 배열에 스칼라 2를 더하고 있습니다. 브로드캐스팅 덕분에 배열과 스칼라 간의 연산이 간단하게 가능합니다. 결과는 [3 4 5 6 7]이 됩니다.

예제 2: 브로드캐스팅을 사용한 서로 다른 크기의 배열 간의 연산

import numpy as np

# 배열 생성
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([10, 20, 30])

# arr1과 arr2를 브로드캐스팅하여 더하기
result = arr1 + arr2

print(result)

위의 코드에서 arr1은 2x3 배열이고 arr2는 크기가 3인 배열입니다. 브로드캐스팅을 사용하여 arr2가 자동으로 arr1의 크기에 맞게 확장되어 두 배열 간의 요소별 덧셈이 수행됩니다. 결과는 다음과 같습니다:

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

예제 3: 브로드캐스팅을 사용한 다차원 배열 간의 연산

import numpy as np

# 배열 생성
arr1 = np.array([[1, 2, 3], [4, 5, 6]])  # 크기: (2, 3)
arr2 = np.array([[10], [20]])            # 크기: (2, 1)

# arr1과 arr2를 브로드캐스팅하여 곱하기
result = arr1 * arr2

print(result)

위의 코드에서 arr1arr2는 다양한 크기를 가진 다차원 배열입니다. 브로드캐스팅을 사용하여 두 배열을 곱셈 연산하고 있습니다. arr2가 자동으로 arr1의 크기에 맞게 확장되어 요소별 곱셈이 수행됩니다. 결과는 다음과 같습니다:

[[10 20 30]
 [80 100 120]]

이와 같이 Numpy의 브로드캐스팅을 통해 배열 간의 연산을 매우 간편하게 수행할 수 있으며, 이를 통해 코드의 가독성과 효율성을 향상시킬 수 있습니다.