반응형
넘파이 행렬 분배법칙¶
분배법칙 설명¶
- 행렬의 곱셉에서 행렬의 순서가 바뀌면 연살 결과가 달라지거나 연산이 되지 않는다. 즉, 교환법칙은 성립하지 않는다.
- AB != BA
- 하지만 덧셈에 대한 분배법칙은 성립한다.
- A(B + C) = AB + AC
- (A + B)C = AC + BC
넘파이를 활용한 분배법칙 적용¶
In [1]:
import numpy as np
a = np.array([[2, 2],
[3, 3]])
b = np.array([[4, 4],
[5, 5]])
c = np.array([[6, 6],
[7, 7]])
In [2]:
# AB != BA
a@b == b@a
Out[2]:
array([[False, False], [False, False]])
In [4]:
# A(B + C) = AB + AC
a@(b+c) == a@b + a@c
Out[4]:
array([[ True, True], [ True, True]])
In [5]:
# (A + B)C = AC + BC
(a + b)@c == a@c + b@c
Out[5]:
array([[ True, True], [ True, True]])
행렬 전치 연산 분배법칙¶
- 전치 연산에서도 덧셈/뺄셈에 대한 분배 법칙이 성립합니다.
- (A + B).T = A.T + B.T
- 전치 연산에서 곱셉에 대한 분배법칙이 성립하긴 하지만, 곱셈의 순서가 바껴야 합니다.
- (AB).T = B.T A.T
- (ABC).T = C.T B.T A.T
넘파이를 활용한 전치 연산 적용¶
In [6]:
# (A + B).T = A.T + B.T
(a + b).T == a.T + b.T
Out[6]:
array([[ True, True], [ True, True]])
In [7]:
# (AB).T = B.T A.T
(a@b).T == b.T@a.T
Out[7]:
array([[ True, True], [ True, True]])
In [8]:
# (ABC).T = C.T B.T A.T
(a@b@c).T == c.T @ b.T @ a.T
Out[8]:
array([[ True, True], [ True, True]])
반응형
'python' 카테고리의 다른 글
파이썬 정규분포 생성 및 pdf 산출 (0) | 2023.08.15 |
---|---|
파이썬 nan 값 시각화 missingno.matrix (0) | 2023.08.15 |
주피터노트북에 이미지 업로드 기능 넣기 (0) | 2023.08.15 |
파이썬 엘레먼트 와이즈 및 브로드케스팅 연산 (0) | 2023.08.13 |
넘파이 내적 (inner product) (0) | 2023.08.13 |
댓글