https://www.zerocho.com/category/Git/post/580f633046f4fe09815b72a5
위 블로그들에 자세히 나와있고, 기초적인 내용들이기 때문에 블로그에 따로 작성하지는 않겠습니다. 간단하게, Git을 사용해서 Code의 flow를 관리하는 방법론에 대한 소개입니다.
간단하게,
import numpy as np
arr = np.array([1,2,3])
arr_2D = np.array([[1,2,3],
[4,5,6],
[7,8,9]])
# 배열 만들기
arr.shape
arr_2D.shape
# 모양이 확인된다.
arr * 5
# 결과 : [5,10,15]
arr + 3
# 결과 : [4,5,6]
arr * arr
# 결과 : [1,4,9]
arr - arr
# 결과 : [0,0,0]
arr_2D[1,2] == 6
# 인덱싱은 당연하게도, 리스트와 같다
arr_2D[0:2, 0:2] == [[1,2],
[4,5]]
##############################################
x = np.array([0,1,0]) # x는 1x3 행렬
x = x[:, None] # x는 3x1 행렬으로 전치됨 (transpose)
arr_2D + x == [[1,2,3],
[5,6,7],
[7,8,9]]
# M by N과 M by 1 행렬의 연산
y = np.array([0,1,-1])
arr_2D * y == [[0, 2, -3],
[0, 5, -6],
[0, 8, -9]]
# M by N과 1 by N 행렬의 연산
0 1 0 0 1 -1 0 2 -1
x * y == 0 1 0 + 0 1 -1 == 0 2 -1
0 1 0 0 1 -1 0 2 -1
# M by 1과 1 by N 행렬의 연산
M by 1과 1 by N 행렬의 연산
import numpy as np
np.zeros(dim)
# dim = eg. 2, (3,3)
# np.zeros((3,3))
np.ones(dim)
# np.ones(2)
# np.ones((3,3))
np.diag((main diagonals))
# np.diag((2,4))
# np.diag((1,3,5))
np.eye(n, dtype=)
# np.eye(3)
# np.eye(5, dtype=float)
m_1 = np.array([[1,4], [2,3]])
m_2 = np.array([[7,9], [0,6]])
m_1 @ m_2 == [[ 7, 33],
[14, 36]]
# m_1.dot(m_2) == m_1 @ m_2
m_1.trace() == 4
#main diagonal의 합
np.linalg.det(m_1)
# 행렬식(determinant) == ad-bc
np.linalg.inv(m_1)
# 역행렬
np.linalg.eig(m_1)
eig_val, eig_vec = np.linalg.eig(arr_2D)
arr_2D @ eig_vec[:, 0] == eig_val[0] * eig_vec[:, 0]
# Ax = lambda*x
# 고유값과 고유벡터
이 후, numpy-100 자료 fork해서 공부하였다.