Programmers 인공지능 데브코스 - Week 3 Day 1

donchanee·2020년 12월 14일
0
post-thumbnail

😃[3주차 - Day1]😃

Git 사용법

https://medium.com/webeveloper/%EA%B9%83%ED%97%88%EB%B8%8C-%EC%82%AC%EC%9A%A9%EB%B0%A9%EB%B2%95-github-tutorials-4a63f31bb6a5

https://www.zerocho.com/category/Git/post/580f633046f4fe09815b72a5

위 블로그들에 자세히 나와있고, 기초적인 내용들이기 때문에 블로그에 따로 작성하지는 않겠습니다. 간단하게, Git을 사용해서 Code의 flow를 관리하는 방법론에 대한 소개입니다.

Numpy의 연산 & 선형대수

연산

간단하게,

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해서 공부하였다.

0개의 댓글