개발공부

[Python] Numpy 연산, 브로드 캐스팅(broadcasting) 본문

Python/Numpy

[Python] Numpy 연산, 브로드 캐스팅(broadcasting)

mscha 2022. 4. 29. 17:28

1차원 배열 연산

위치에 매치되는 데이터끼리 연산한다.

>>> x = np.random.randint(1, 10, 4)
>>> y = np.random.randint(10, 100, 4)
>>> x
array([1, 3, 2, 6])
>>> y
array([91, 80, 29, 80])
>>> x + y
array([92, 83, 31, 86])
>>> x - y 
array([-90, -77, -27, -74])
>>> x * y
array([ 91, 240,  58, 480])
>>> x / y
array([0.01098901, 0.0375    , 0.06896552, 0.075     ])

 

2차원 배열 연산

위치에 매치되는 데이터끼리 연산한다.

>>> X = np.random.randint(1, 10, (2,2))
>>> Y = np.random.randint(100, 150, (2,2))
>>> X
array([[5, 5],
       [8, 9]])
>>> Y
array([[123, 111],
       [130, 100]])
>>> X + Y 
array([[128, 116],
       [138, 109]])
>>> X * Y
array([[ 615,  555],
       [1040,  900]])
>>> X - Y
array([[-118, -106],
       [-122,  -91]])
>>> X / Y
array([[0.04065041, 0.04504505],
       [0.06153846, 0.09      ]])

 

각 요소마다 연산이 수행됨, 브로드캐스팅

>>> my_array = np.array([51, 70, 83, 87, 61])
>>> my_array
array([56, 75, 88, 92, 66])
>>> my_array - 5
array([51, 70, 83, 87, 61])
>>> my_array * 10
array([560, 750, 880, 920, 660])
>>> my_array / 3
array([18.66666667, 25.        , 29.33333333, 30.66666667, 22.        ])