데이터사이언스 기록기📚

[Numpy] broadcasting 이해 및 활용 본문

Data/Data

[Numpy] broadcasting 이해 및 활용

syunze 2022. 6. 16. 18:03

1. broadcasting

 - (연산 가능한) 두 ndarrat가 다른 shape을 가지는 경우 사용

 - 활용

  • 뒷 차원부터 비교하여 shape이 같을 때
  • 차원 중 값이 1인 것이 존재할 때 가능

뒷 차원의 Shape이 같은 경우

 - b의 행이 4개로 늘어나서 연산

a = np.arange(12).reshape(4,3)
# [[ 0  1  2]
# [ 3  4  5]
# [ 6  7  8]
# [ 9 10 11]]

b = np.arange(100,103)
# [100 101 102]
# b가 a의 뒷차원값과 맞아서 가능
a + b
# array([[100, 102, 104],
#       [103, 105, 107],
#       [106, 108, 110],
#       [109, 111, 113]])

 

 

뒷 차원의 Shape이 다른 경우

  -  오류 발생

a = np.arange(12).reshape(4,3)
# [[ 0  1  2]
# [ 3  4  5]
# [ 6  7  8]
# [ 9 10 11]]

c = np.arange(1000, 1004)
# [1000 1001 1002 1003]
# c는 a의 뒷차원과 맞지 않아서 오류
a + c  # Error!

 

차원 중 값이 1인 것이 존재

 - 연산 가능

a = np.arange(12).reshape(4,3)
# [[ 0  1  2]
# [ 3  4  5]
# [ 6  7  8]
# [ 9 10 11]]

b = np.arange(100,103)
# [100 101 102]

d = b.reshape(1,3) # 행렬
# [[100 101 102]]
# 뒷 차원이 동일해서 연산 가능
a + d
# array([[100, 102, 104],
#       [103, 105, 107],
#       [106, 108, 110],
#       [109, 111, 113]])
728x90
Comments