행렬의 교환 법칙과 분배 법칙
행렬의 곱셈은 교환 법칙이 성립하지 않으나 덧셈/뺄셈의 분배 법칙은 성립한다.
전치 연산이나 역행렬에서도 덧셈/뺄셈의 분배 법칙이 성립한다. 또한 곱셈에서도 분배 법칙이 성립하지만 곱셈의 순서가 바뀐다.
연습 문제 2.2.5
-> N x 1 @ 1 x N -> N x N
-> XT : M x N, M x N @ N x 1 - > M x 1
(3) 다음 코드를 실행하면 붓꽃 전체 데이터를 모두 벡터로 변환하여 하나의 넘파이 행렬 X 를 만든다.
from sklearn.datasets import load_iris
X = load_iris().data
이 데이터로 행렬 X¯의 값을 계산하라. 이 행렬은 첫 번째 열의 값이 모두 같은 값으로 붓꽃의 꽃받침의 길이(sepal length)의 평균이고 두 번째 열의 값이 모두 같은 값으로 붓꽃의 꽃받침의 폭(sepal width)의 평균, 이런 식으로 계산된 행렬이다.
항등행렬의 곱셈
어떤 행렬이든 항등행렬을 곱하면 자기 자신이 유지된다.
열 벡터의 선형조합
행렬 X와 벡터 w의 곱은 행렬 X의 열벡터 c1, c2 ... 와 벡터 w의 성분 w1 w2, ... 으로 선형조합(linear combination)을 한 결과 벡터와 같다.
연습 문제 2.2.7
Morphing
Vector의 linear combination의 예로 두 이미지를 섞어 놓는 모핑(morphing)이 있다.
from sklearn.datasets import fetch_olivetti_faces
faces = fetch_olivetti_faces()
f, ax = plt.subplots(1, 3)
ax[0].imshow(faces.images[6], cmap=plt.cm.bone)
ax[0].grid(False); ax[0].set_xticks([]); ax[0].set_yticks([])
ax[0].set_title("image 1 : $x_1$")
ax[1].imshow(faces.images[10], cmap=plt.cm.bone)
ax[1].grid(False); ax[1].set_xticks([]); ax[1].set_yticks([])
ax[1].set_title("image 2 : $x_2$")
# morphing
new_face = 0.7 * faces.images[6] + 0.3 * faces.images[10]
ax[2].imshow(new_face, cmap=plt.cm.bone)
ax[2].grid(False); ax[2].set_xticks([]); ax[2].set_yticks([])
ax[2].set_title("image 3 : $0.7x_1 + 0.3X_2$")
plt.show()
'Jupyter Notebook > 선형대수' 카테고리의 다른 글
[Python] 선형 연립방정식과 역행렬 (1) | 2021.02.26 |
---|---|
[Python] 행렬의 성질 (0) | 2021.02.22 |
[Python] 벡터와 행렬의 연산(1) (0) | 2021.02.20 |
[Python] 데이터와 행렬 (0) | 2021.02.19 |