1. list와 array 그리고 set
list
- 파이썬 기본 배열
- 하나의 list 안에 서로 다른 자료형을 담을 수 있다
- 수치적 연산 불가
array
- numpy 배열
- 하나의 array 안에는 동일한 자료형들만 담을 수 있다
- 수치적 연산 가능 (array 내 평균 구하기, 다른 array와의 덧셈-뺄셈 등)
a = [1,2,3]
array_a = np.array(a)
set
- 순서가 없다
- 자료간 중복을 허용하지 않는다
2. 선형대수
선형대수를 이용해 컴퓨터에 데이터를 이해시키고 그 속의 패턴을 설명한다.
a. 스칼라 : 상수
b. 벡터 : 1차원 형태의 배열
벡터의 크기(norm, length, magnitude)
- 벡터의 길이를 나타내므로 음수가 될 수 없음
벡터의 내적(Dot product)
- 두 벡터의 차원이 같을 때 구할 수 있다
- 서로 대응하는 성분을 곱한 뒤 모두 합하여 구한다
- 만약 두 벡터의 내적이 0이라면 두 벡터는 서로 수직이다
np.dot(v1, v2)
c. 매트릭스 : 2차원 형태의 배열
- 행과 열의 개수는 매트릭스의 차원을 의미
mat_a = np.array([[1,3,5], [2,4,6]])
mat_a
#array([[1, 3, 5],
[2, 4, 6]])
#행렬의 전치
mat_a.T
np.transpose(mat_a)
#행렬곱
#앞 행렬의 열 갯수와 뒷 행렬의 행 갯수가 같으면 곱할 수 있다
mat_b = np.array([[1,-1,0,2],[0,1,2,-1],[2,3,-1,1]])
#array([[ 1, -1, 0, 2],
[ 0, 1, 2, -1],
[ 2, 3, -1, 1]])
np.matmul(mat_a, mat_b)
정사각 행렬
- 열 갯수와 행 갯수가 일치하는 행렬
대각 행렬
- 왼쪽 상단에서 오른쪽 하단으로 내려가는 주 대각선을 제외한 모든 성분이 0인 정사각 행렬
단위 행렬
- 대각 행렬 중에서 주 대각성 성분이 모두 1이고 나머지 원소는 모두 0인 매트릭스
- 임의의 정사각 행렬 A에 단위 행렬 I를 곱한 것은 자기 자신과 같다
np.eye(2, dtype=int)
#array([[1, 0],
[0, 1]])
역행렬
- 임의의 정사각 행렬 I에 대하여 곱했을 때 단위 행렬이 되도록 하는 행렬
- 역행렬을 구하는 식은 다음과 같다
#mat_c의역행렬 구하기
mat_c = np.array([[1,2],[3,4]])
np.linalg.inv(mat_c)
행렬식(Determinant)
- 정사각 행렬에 대해서만 구할 수 있다
- 행렬식이 0이면 역행렬이 존재하지 않는다
#행렬식 구하기
np.linalg.det(mat_c)
d. span
- 주어진 두 벡터의 조합으로 만들 수 있는 모든 가능한 벡터의 집합
- 두 벡터가 선형 관계에 있지 않을 때, 선형적으로 독립됐다고 말한다. 이때 벡터들이 만들어내는 span의 차원은 벡터의 수와 같다.
- 같은 선상에 있는 벡터들은 선형 관계에 있다고 말한다. 이런 벡터는 선 외부에 조합을 통한 새로운 벡터를 생성할 수 없다.
- 선형관계 여부는 rank() 매서드를 통해 알 수 있다.
'Codestates AI 부트캠프 > 1. Introduction to Data Sceince' 카테고리의 다른 글
[DS 기초] 3-3 clustering (0) | 2023.03.07 |
---|---|
[기초 수학] 3-2 PCA (0) | 2023.03.07 |
[통계학] 2-4 AB test (0) | 2023.02.26 |
[통계학] 2-3 Hypothesis Test / p-value 활용 (0) | 2023.02.26 |
[통계학] 2-2 Central Limit Theorem (0) | 2023.02.26 |