Python Numpy 강좌 : 제 12강 - 브로드캐스팅

Python Numpy Broadcasting

Python Numpy 강좌 : 제 12강 - 브로드캐스팅
[ Python-Numpy ] - 윤대희

브로드캐스팅(Broadcasting)


브로드캐스팅이란 Numpy 배열에서 차원의 크기가 서로 다른 배열에서도 산술 연산을 가능하게 하는 원리입니다.

두 배열 간 차원의 크기가 (4, 2), (2, ) 일 때 산술 연산을 실행한다면 (2, )의 배열이 (4, 2) 행렬의 각 행에 대해 요소별 연산을 실행할 수 있습니다.

두 배열 간의 차원의 크기가 달라도 차원의 크기가 더 큰 배열에 대해 작은 배열을 여러 번 반복하지 않아도 되는 것을 의미합니다.

  • Tip : (2, )은 1차원 형태의 배열을 의미합니다. 즉, [a b]의 값을 지닙니다.



브로드캐스팅 허용 규칙

  1. 두 배열의 차원(ndim)이 같지 않다면 차원이 더 낮은 배열이 차원이 더 높은 배열과 같은 차원의 배열로 인식됩니다.
  2. 반환된 배열은 연산을 수행한 배열 중 차원의 수(ndim)가 가장 큰 배열이 됩니다.
  3. 연산에 사용된 배열과 반환된 배열의 차원의 크기(shape)가 같거나 1일 경우 브로드캐스팅이 가능합니다.
  4. 브로드캐스팅이 적용된 배열의 차원 크기(shape)는 연산에 사용된 배열들의 차원의 크기에 대한 최소 공배수 값으로 사용합니다.



import numpy as np 

array1 = np.array([1, 2, 3, 4]).reshape(2, 2)
array2 = np.array([1.5, 2.5])

add = array1 + array2

print(add)
결과
[[2.5 4.5]
[4.5 6.5]]


각 배열의 차원이 달라도 브로드캐스팅 허용 규칙에 위반되지 않는다면 연산이 가능합니다.

또한, 형식 캐스팅(type casting)을 지원해 두 배열의 자료형(dtype)이 다르더라도 연산이 가능합니다.

  • Tip : 형식 캐스팅 : 자료형을 비교해 표현 범위가 더 넓은 자료형을 선택하는 것을 의미합니다.

도움이 되셨다면 광고 클릭 부탁드립니다.


Book Image

책이 출간되었습니다!

C#과 파이썬을 활용한 OpenCV 4 프로그래밍

컴퓨터 비전 기초 이론부터 머신러닝을 활용한 영상 처리 프로젝트까지

  • C# OpenCvSharp4
  • Python OpenCV4
  • Using Tesseract
  • Using TensorFlow
  • Using Regular Expression
  • 윤대희 저 | 위키북스

    [yes24 바로가기] [알라딘 바로가기] [교보문고 바로가기]


    ⤧  Previous post Python Numpy 강좌 : 제 11강 - 병합
    Python-Numpy Category