본문 바로가기
Python/데이터 분석

[Numpy] Numpy 배열의 연산

by snow_white 2022. 4. 2.

1️⃣ Elements Wide

  1. 같은 위치에 있는 원소들끼리 사칙 연산 가능
  2. shape 다르면 연산 불가 Error!
import numpy as np

x = np.array([[1,2],[3,4]])
y = np.array([[5,6],[7,8]])

x+y
>>
array([[ 6,  8],
       [10, 12]])

x-y
>>
array([[-4, -4],
       [-4, -4]])

2️⃣ Broadcasting

  1. shape은 동일하지만 전체에 적용하는 것
x = np.array([[1,2],[3,4]])
x*100
>>
array([[100, 200],
       [300, 400]])
np.sqrt(x) # x값 전체에 제곱근, 루트 씌운 꼴
>>
array([[1.        , 1.41421356],
       [1.73205081, 2.        ]])

shape이 안 맞는 경우 에러!!!

x = np.array([[1,2,3],[3,4,5]]) # 2행 3열
y = np.array([[5,6],[7,8]]) # 2행 2열
x/y  # 행렬 shape이 맞지 않아서 Error!

3️⃣ 내적 연산

dot() , @

  1. shape이 동일하지 않아도 연산 가능
  2. 연산 되는 첫 번째 행렬의 열두 번째 행렬의 행이 일치해야 함 ⇒ 일치하지 않으면 Error!
  3. 연산 결과의 shape은 (첫 번째 행렬의 행 * 두 번째 행렬의 열)

내적 곱

arr1 = np.array([[1,2],[3,4]])
arr2 = np.array([[5,6],[7,8]])

# 각 요소 간의 곱, elements wide
print(arr1*arr2) 
'''
[[ 5 12]
 [21 32]]
'''
# 내적곱, broadcasting
print(arr1@arr2)
print(arr1.dot(arr2))
'''
[[19 22]
 [43 50]]
'''

'Python > 데이터 분석' 카테고리의 다른 글

[Numpy] Numpy 배열의 정렬  (0) 2022.04.02
[Numpy] Numpy 배열의 Indexing & Slicing  (0) 2022.04.02
[Numpy] Numpy 배열의 속성 및 함수  (0) 2022.04.02
[Numpy] Numpy  (0) 2022.04.02
[Python] Numpy 심화  (0) 2022.03.17

댓글