브로드캐스팅

NumPy 소개

Izzy Weber

Core Curriculum Manager, DataCamp

브로드캐스팅 소개

 

서로 다른 shape의 두 배열이 더해지는 그래픽

NumPy 소개

스칼라 브로드캐스팅

2D 배열에 숫자 2를 더하는 이미지  

2D 배열에 동일한 shape의 2로 채워진 배열을 더하는 이미지

NumPy 소개

호환성 규칙

  • NumPy는 배열 차원을 오른쪽에서 왼쪽으로 비교합니다  

 

 

 

 

shape (10, 5)와 (10, 1) 배열에 호환성 규칙을 적용하는 그래픽

NumPy 소개

호환성 규칙

  • NumPy는 배열 차원을 오른쪽에서 왼쪽으로 비교합니다
  • 두 차원이 호환되는 경우...
    • 하나의 길이가 1이거나
    • 두 길이가 동일한 경우
  • 모든 차원 쌍이 호환되어야 합니다

 

shape (10, 5)와 (10, 1) 배열에 호환성 규칙을 적용하는 그래픽

NumPy 소개

브로드캐스팅 가능 여부

 

브로드캐스팅 가능한 shape:

  • (10, 5)(10, 1)
  • (10, 5)(5, )

 

브로드캐스팅 불가능한 shape:

  • (10, 5)(5, 10)
  • (10, 5)(10, )
NumPy 소개

행 브로드캐스팅

shape (2, 5) 배열과 shape (1, 5) 배열의 덧셈

 

array = np.arange(10).reshape((2, 5))
array + np.array([0, 1, 2, 3, 4])
array([[ 0,  2,  4,  6,  8],
       [ 5,  7,  9, 11, 13]])
NumPy 소개

행 브로드캐스팅

 

 

shape (2, 5) 배열과 shape (2, 5) 배열의 덧셈

NumPy 소개

호환되지 않는 브로드캐스팅

 

shape (2, 5) 배열과 shape (2,) 배열의 덧셈 시 ValueError가 발생하는 그래픽

 

array = np.arange(10).reshape((2, 5))
array + np.array([0, 1])
ValueError: operands could not be broadcast together with shapes (2,5) (2,) 
NumPy 소개

열 브로드캐스팅

shape (2, 5) 배열과 shape (2, 1) 배열의 덧셈 그래픽

array = np.arange(10).reshape((2, 5))
array + np.array([0, 1]).reshape((2, 1))
array([[ 0,  1,  2,  3,  4],
       [ 6,  7,  8,  9, 10]])
NumPy 소개

열 브로드캐스팅

 

 

단일 열 배열이 더 큰 배열과 동일한 shape으로 열 방향으로 확장되는 그래픽

NumPy 소개

다른 연산자

shape (2, 2) 배열과 shape (2, 1) 배열의 곱셈

shape (2, 2) 배열에서 shape (2,) 배열을 뺄셈

NumPy 소개

연습해 봅시다!

NumPy 소개

Preparing Video For Download...