본문 바로가기

전체 글

(57)
[Week1] Python - pandas *pandas -> Python계의 엑셀! 구조화된 데이터의 처리를 지원하는 Python 라이브러리. panel data -> pandas 고성능 array계산 라이브러리인 numpy와 통합하여, 강력한 "스프레드시트"처리 기능을 제공 인덱싱, 연산용 함수, 전처리 함수 등을 제공 데이터 처리 및 통계 분석을 위해 사용 *Data loading ex1) df_data = pd.read_csv(data_url , sep='\s+' , header = None) #csv 타입 데이터 로드, separate은 regex로 빈공간으로 지정하고, Column은 없음 ex2) df_data.head() # 첫 5줄 출력 , integer로 몇 줄 출력할지 넣어줄 수 있음 *Series Data Table 전체를 포..
[Week1] Python - numpy *numpy Numerical Python 파이썬의 고성능 과학 계산용 패키지 Matrix와 Vector와 같은 Array 연산의 사실상의 표준 한글로 넘파이로 주로 통칭 *numpy 특징 일반 List에 비해 빠르고, 메모리 효율적 반복문 없이 데이터 배열에 대한 처리 지원 선형대수와 관련된 다양한 기능 제공 ex) dot , norm 등 굉장히 큰 Matrix에 리스트보다 메모리의 효율성 높음 *ndarray 특징 하나의 데이터 type만 배열에 넣을 수 있음 List와 가장 큰 차이점 -> dynamic typing not supported C의 Array를 사용하여 배열 생성 List와 메모리 저장 방법이 다름 *reshape Array의 shape의 크기를 변경함, element의 갯수는 동일 ..
[Week1] Python - pythonic code *pythonic code? 파이썬 특유 문법을 의미하는 pythonic cnode 짧고 이해하기 편함 *Contents split & join list comprehension -> for loop append보다 빠름 enumerate & zip lambda & map & reduce generator asterisk *split 함수 string type의 값을 "기준값"으로 나눠서 List 형태로 반환 ex) items = "zero one two three" ex) items.split(" ") => ['zero' , 'one' , 'two' , 'three'] d *join 함수 string type의 값을 "기준값"으로 합침 ex) colors = ["red" , "blue" , "green..
[Week1] Python - Data Structure *자료구조 데이터 저장시, 데이터의 특징에 따라 컴퓨터에 효율적으로 정리하기 위한 데이터의 저장 및 표현 방식 *데이터 구조 생각해보기 전화번호부 정보는 어떻게 저장하면 좋을까? 은행 번호표 정보는 어떻게 처리하면 좋을까? 서적 정보는 어떻게 관리하면 좋을까? 창고에 쌓인 수화물의 위치를 역순으로 찾을 때? *자료구조 스택과 큐(stack & queue with list) 튜플과 집합(tuple & set) 사전(dictionary) Collection 모듈 *스택 (Stack) with list object 리스트를 사용하여 스택구조를 구현 가능 push를 append(), pop을 pop()를 사용 *큐 (Queue) with list object 리스트를 사용하여 큐 구조를 구현 가능 push를 a..
[Week1] AI Math 기초 1. 벡터 벡터는 숫자를 원소로 가지는 리스트(list) 또는 배열(array)이다. 벡터는 공간에서 한 점을 나타냄. 벡터는 원점으로부터 상대적 위치를 표현. 벡터에 숫자를 곱해주면 길이만 변함. 벡터끼리 같은 모양을 가지면 덧셈, 뺄셈을 계산할 수 있음. 벡터끼리 같은 모양을 가지면 성분곱(Hadamard product)을 계산할 수 있음. 벡터의 노름(norm)은 원점에서부터의 거리를 말함. L1-노름은 각 성분의 변화량의 절대값을 모두 더함. L2-노름은 피타고라스 정리를 이용해 유클리드 거리를 계산. *왜 다른 노름의 종류를 활용할까? 노름의 종류에 따라 기하학적 성질이 달라짐. 머신러닝에선 각 성질들이 필요할 때가 있으므로 둘다 사용. * 노름을 이용한 두 벡터 사이의 거리와 각도 L1,L2 ..
위상 정렬 1. 위상정렬이란? 사이클이 없는 방향 그래프의 모든 노드를 방향성에 거스르지 않도록 순서대로 나열하는 것을 의미. 예시) 선수과목을 고려한 학습 순서 설정 위 세 과목을 모두 듣기 위한 적절한 학습 순서는? 자료구조 -> 알고리즘 -> 고급 알고리즘 (O) 자료구조 -> 고급 알고리즘 -> 알고리즘 (X) 2. 진입차수와 진출차수 진입차수(Indegree) : 특정한 노드로 들어오는 간선의 개수 진출차수(Outdegree) : 특정한 노드에서 나가는 간선의 개수 3. 위상 정렬 알고리즘 큐를 이용하는 위상 정렬 알고리즘의 동작 과정은 다음과 같음. 1. 진입 차수가 0인 모든 노드를 큐에 넣음. 2. 큐가 빌 때까지 다음의 과정을 반복. 2-1) 큐에서 원소를 꺼내 해당 노드에서 나가는 간선을 그래프에..
SQL 기초 10가지 문법 1. SELECT (데이터 조회하기) SELECT col_name1, col_name2 // 해당하는 열의 이름을 조회함 SELECT * // 애스터리스크(*)는 모든열을 의미함 FROM 테이블명 // 여러 테이블중 보고 싶은 테이블에 대한 이름을 조회 예약어의 데이터베이스 객체명은 대소문자를 구별하지 않는다. 표 형식의 데이터는 '행(레코드)'와 '열(컬럼/필드)'로 구성된다. 2. ORDER BY ORDER BY col_name // 가격을 기준으로 오름차순(default) 정렬 ORDER BY col_name1, col_name2 , .. // col_name1부터 오름차순 정렬 ORDER BY col_name desc // 내림차순 정렬 ex1) 오름차순 SELECT 열명 FROM 테이블명 WHE..
크루스칼 1. 신장 트리 그래프에서 모든 노드를 포함하면서 사이클이 존재하지 않는 부분 그래프를 의미함. 모든 노드가 포함되어 서로 연결되면서 사이클이 존재하지 않는다는 조건은 트리의 조건이 됨. 2. 최소 신장 트리 최소한의 비용으로 구성되는 신장 트리를 찾아야 할 때 어떻게 해야 할까요? N개의 도시가 존재하는 상황에서 두 도시 사이에 도로를 놓아 전체 도시가 서로 연결될 수 있게 도로를 설치하는 경우 => 두 도시 A,B를 선택했을 때 A에서 B로 이동하는 경로가 반드시 존재하도록 도로를 설치합니다. 3. 크루스칼 알고리즘 대표적인 최소 신장 트리 알고리즘 그리디 알고리즘으로 분류 구체적인 동작 과정 1. 간선 데이터를 비용에 따라 오름차순으로 정렬 2. 간선을 하나씩 확인하며 현재의 간선이 사이클을 발생시..