1️⃣ Elements Wide
- 같은 위치에 있는 원소들끼리 사칙 연산 가능
- 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
- 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() , @
- shape이 동일하지 않아도 연산 가능
- 연산 되는 첫 번째 행렬의 열과 두 번째 행렬의 행이 일치해야 함 ⇒ 일치하지 않으면 Error!
- 연산 결과의 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 |
댓글