🙄 행렬과 벡터
➡ 행렬 (Matrix)
A = [12110421]
- A의 경우 행이 2개 열이 4개 있는데, 이걸 2x4 행렬 혹은 "행렬의 차원이 2x4다" 라고 함
- Aij는 행렬 A의 i행 j열에 있는 원소를 뜻함
- A21은 A의 2행 1열에 있는 원소 2를 나타냄
➡ 벡터
- 일종의 행렬, 행이 하나밖에 없거나 열이 하나밖에 없는 행렬
a = ⎣⎢⎢⎢⎢⎢⎡10241⎦⎥⎥⎥⎥⎥⎤
b = [1024]
- a 같은 경우 열이 하나만 있기 때문에 열 벡터
- b는 행이 하나만 있기 때문에 행 벡터
👉 열 벡터를 사용하는 경우가 더 많기 때문에, 그냥 벡터라고 하면 열 벡터를 뜻함
- 벡터는 무조건 열이 하나밖에 없거나 행이 하나밖에 없기 때문에 백터의 차원을 이야기 할 때는
원소의 개수를 얘기함
ex) a는 5차원 열 벡터, b는 4차원의 행 벡터
👉 벡터가 아닌 일반 행렬은 주로 대문자 알파벳으로, 벡터는 주로 소문자 알파벳으로 나타낸다
🙄 numpy로 행렬 사용하기

- A : 일반 행렬 생성
- B : 0부터 1까지의 랜덤한 수로 행렬 생성, 파라미터
(행의 수, 열의 수)
- C : 0으로 채워진 행렬 생성, 파라미터
((행의 수, 열의 수)) 📌 괄호를 한번 더 쓰자
🙄 행렬 연산_1 (덧셈, 스칼라곱)
➡ 행렬 덧셈
A = [1213], B = [3214]
A+B = [1213] + [3214] = [4427]
👉 행렬을 더하기 위해서는 두 행렬의 차원이 같아야 함 = 행 수와 열 수가 같아야 함
➡ 스칼라곱
- 행렬과 수를 곱하는 것을 스칼라곱이라고 함
- 스칼라 : 행렬의 원소가 아닌 일반 수
ex) 아래 i
i=5, A = [3213]
iA = [1510515]
🙄 행렬 연산_2 (두 행렬의 곱)
➡ 두 행렬의 곱
A = [123211], B = ⎣⎢⎡543621⎦⎥⎤
- A는 2 by 3 행렬이고, B는 3 by 2 행렬
AB = [20211317]
- 1행 1열에는 A의 1행과 B의 1열을 곱한 결과가 들어감
1∗5+3∗4+1∗3=20
➡ 행렬 차원
AB = [20211317]
- A와 B를 곱하면, A가 행을 제공하고 B가 열을 제공
- 결과 행렬의 행 수는 A의 행 수랑 똑같고, 열 수는 B의 열 수랑 똑같음
- m∗n인 행렬 A와 n∗p인 행렬 B
- A의 열 수와 B의 행 수가 같아 두 행렬을 곱할 수 있음
- 곱하면 A의 행 수와 B의 열 수를 따서 m∗p 행렬이 결과로 나옴
👉 A의 열 수와 B의 행 수가 똑같아야 두 행렬을 곱할 수 있음
➡ 교환 법칙
- 3∗4 = 4∗3은 성립하지만 행렬에서 A∗B = B∗A 는 성립하지 않는다
- 계산조차 할 수 없는 경우가 대부분
계산 가능
AB = [123211]∗⎣⎢⎡54362113−1431⎦⎥⎤
계산 불가능
BA = ⎣⎢⎡54362113−1431⎦⎥⎤∗[123211]
➡ 요소별 곱하기
- 행렬 덧셈 연산과 똑같은 성질을 갖는 연산
- AΟB로 표현
A = [1324], B = [−1321]
AΟB = [−1944]
🙄 numpy로 행렬 연산하기


두 행렬 곱셈 방법
🙄 특수 행렬
➡ 전치 행렬 (transposed matrix)
- 행렬 전환된 행렬
- 행렬 계산할 때 모양을 맞춰야 할 때가 존재, 기존 행렬에서 모양이 안 맞으면 전치 행렬을 사용
A = [132212]
AT = ⎣⎢⎡121322⎦⎥⎤
➡ 단위 행렬 (identity matrix)
- 왼쪽 위에서부터 대각선으로는 원소가 1, 그 외에는 모두 0인 행렬
- 단위 행렬은 항상 정사각형의 모양
- 단위 행렬의 목적 : 어떤 행렬이든 간에 단위 행렬을 곱하면 기존 행렬이 유지
- 자연수 1 역할
A = [3142], I = [1001]
AI = [3142]
➡ 역행렬 (inverse matrix)
- 곱해서 단위 행렬이 나오는 행렬
- 자연수 역수 역할
A = [3142], A−1 = [1−21−223]
A∗A−1 = [1001]
👉 모든 행렬에 역행렬이 있는 건 아님
🙄 numpy로 전치, 단위, 역행렬 사용하기


행렬 A의 전치 행렬 만들기
단위 행렬 만들기
행렬 A의 역행렬 만들기