Stack Building
1. 데이터베이스 관리 시스템의 발전 배경 초기의 데이터 처리 시스템은 프로그램이 자신이 쓸 데이터를 관리하는 방식이었다. 이 방식에는 '데이터 종속성'과 '데이터 중복성'이라는 문제가 있다. 1-1. 데이터 종속성 dependancy 응용 프로그램과 데이터 간의 상호 의존 관계. 응용 프로그램이 접근하려는 데이터의 구성 방법, 접근 방법에 맞게 작성되어야 하기 때문에 데이터의 구성 방법, 접근 방법이 변경되면 응용 프로그램도 변경시켜야 한다. 만일 응용 프로그램의 수가 많을 경우 데이터의 구성 방법 및 접근 방법을 변경하면 일의 규모가 커진다. 1-2. 데이터 중복성 redundancy 같은 데이터를 사용하는데도 응용 프로그램이 서로 다른 구조를 가지고 있어 내용은 같되 표현 방법이 다른 데이터 모음이..
1. 정보 처리 시스템 정보 처리란 정보 생성을 위해 데이터를 처리하는 것을 말한다. 데이터베이스 시스템은 정보 처리 시스템이 기능을 효과적으로 수행할 수 있게 한다. 1-1. 정보와 데이터 정보 = 처리(데이터) data(자료)는 현실 세계에서 단순한 관찰/측정으로 수집된 사실/값이다. information(정보)은 의사결정을 할 수 있게 하는 지식으로서 데이터의 해석 또는 관계를 말한다. 정보를 추출하는 과정을 데이터 처리 또는 정보 처리라고 한다. 정보는 의사 결정 과정에서 유용한 결과를 가져오는 데에 유용하게 쓰여야 한다. 유용하게 쓰이려면 정확성, 현재성을 갖추어야 한다. 그를 위해서 정보는 지속적으로 수집, 조직, 저장되어야 한다. 1-2. 정보 시스템 조직체의 활동에 필요한 데이터를 수집, ..
이 글은 TeamLab의 강좌를 정리한 것입니다. Pandas - 구조화된 데이터의 처리를 지원 - numpy와 통합하여 handling(인덱싱, 연산, 전처리 등)할 수 있게 함 - R의 데이터프레임 개념 반영 Series - 전체 데이터 테이블 객체를 DataFrame이라고 지칭하는데, 하나의 칼럼 객체는 Series라고 지칭한다. 시리즈를 개별적으로 생성할 수 있다. - 시리즈는 각각의 데이터를 구분할 수 있는 row instance에서 각각의 인스턴스를 불러주는 index와 data로 구성되어 있다. 데이터를 합칠(join) 때 인덱스를 기준으로 한다. 인덱스의 이름도 지정할 수 있다. 인덱스가 정수가 아니어도 된다. - 기본적으로 numpy.ndarray의 subclass다. - index에 접..
이 글은 TeamLab의 강좌를 정리한 것입니다. Numerical Python - 고성능 과학 계산 패키지 - 행렬, 벡터 등의 배열 연산의 표준 - 리스트 연산에 비해 훨씬 빠르고 효율적인 메모리 사용 - 반복문(for/while)이 없어도 데이터 배열에 대한 처리를 지원 ndarray - numpy dimensional array - np.array([배열 생성])(데이터 타입) - 하나의 데이터 타입만 배열에 넣을 수 있다는 점에서 리스트와 구분됨. 그래서 더 빠름. - 값 자체를 정해진 공간 안에 데이터로 가지고 있다. 리스트는 주소reference를 가지고 있다. - 모양을 살펴볼 때에는 .shape을 사용 (보통 2차원, 이미지를 다룰 땐 3차원) - 차원의 수는 .ndim, 안에 있는 데이..
+++AI 전문가들의 제언+++ (민현석 님) https://facebook.com/255834461424286_479160352425028 (김남주 님) https://facebook.com/255834461424286_455382238136173 (Andrew Ng 님) https://www.quora.com/How-can-beginners-in-mac…/…/Andrew-Ng… +++한글 유튜브 강좌+++ (남세동 님) https://www.youtube.com/watch… (sung kim님) https://www.youtube.com/watch… +++공부 커리큘럼+++ (영어 자료 기준) https://facebook.com/255834461424286_464930173848046 (한글 자료 ..
1. lambda ㅡ 메모리를 절약하고 가독성을 좋게 한다. ㅡ 일반적으로 함수는 객체를 만들고 재사용을 위해 함수의 이름을 메모리에 할당하는데, 익명함수 람다는 이름을 가지지 않는다. 즉, 한 번 사용되고 나면 힙 메모리 영역에서 사라진다. * iterable ㅡ 반복 가능한 자료형 ㅡ 리스트, 문자열, 튜플 등이 해당 2. map ㅡ map(함수, iterable) ㅡ 특정 함수에 대한 수행 결과를 리턴 ㅡ 입력받은 자료형의 각 요소가 함수에 의해 수행된 결과를 묶어서 map iterator 객체로 리턴 ㅡ 메모리를 절약 ㅡ map의 결과를 list로 보고 싶으면 list()로 감싸줘야 한다. 그렇지 않으면 메모리 주소만 나옴 * iterator ㅡ next() 메소드를 가지는 파이썬 객체 ㅡ 메모리..
컨테이너에 동일한 값의 자료가 몇 개인지 파악하는 데에 사용. 가장 수가 큰 것부터 출력한다. 1. 리스트 import collections list = ['a', 'b', 'b', 'c'] print(collections.Counter(list)) >>Counter({'b':2, 'a':1, 'c':1}) 2. 딕셔너리 import collections print(collections.Counter({'가': 3, '나': 2, '다': 4})) >>Counter({'다': 4, '가': 3, '나': 2}) 3. 값=개수 import collections c = collections.Counter(a=2, b=3, c=2) print(collections.Counter(c)) print(sorted(..
1. 힙heap이란? 힙(heap)은 최댓값 및 최솟값을 찾아내는 연산을 빠르게 하기 위해 고안된 완전이진트리(complete binary tree)를 기본으로 한 자료구조(tree-based structure)로서 A가 B의 부모노드(parent node) 이면, A의 키(key)값과 B의 키값 사이에는 대소관계가 성립한다. 부모 노드가 자식 노드보다 항상 크면 최대 힙, 항상 작으면 최소 힙이라고 한다. 형제 사이에는 대소관계가 정해지지 않는다. 2. heapq 모듈 - 이진 트리(binary tree) 기반의 최소 힙(min heap) 자료구조를 제공 3. 사용 방법 힙 리스트를 heap, 모듈은 heapq로 import 해왔을 때, - 원소 추가: heapq.heappush(heap, 넣고싶은것)..
Enumerate 시퀀스형 자료형을 index를 붙여 차례로 열거한다 ex. 리스트의 요소를 추출할 때 번호를 붙여서 추출 가능. for i, v in enumerate(['a', 'b', 'c'])와 같이 변수 각각에 언패킹을 하면서 열거할 수 있다. 0 a 1 b 2 c와 같이 출력된다. ex2. 데이터 마이닝에서 자주 사용 Zip 묶음, 두 개 이상의 시퀀스형 자료형을 index를 기준으로 (병렬적으로 추출) 묶음 ex. for a, b in zip(list1, list2)라고 하면 a, b에 각 리스트의 0번째, 1번째, ... , n번째 요소가 들어갈 수 있다. 변수를 받아오는 방법은 필요에 따라 적절하게 조정하면 된다. 시퀀스형 자료형 리스트, 튜플, 문자열. 순서를 가진다. 인덱싱이 가능한 ..
1. Coding Convention: 이해하기 쉬운 코드를 위해 존재하는 규칙 2. Python의 Coding Convention - 읽기 좋은 코드 지향 - 일관적으로 할 것 - 들여쓰기는 4space 또는 tab (전자가 일반적) - 한 줄은 최대 79자까지 할 것을 권장 - 불필요한 공백 지양 - 연산자는 한 칸 이상 띄우지 않을 것 - 주석은 항상 갱신, 불필요한 주석 삭제 - 소문자 ㅣ, 대문자 O, 대문자 I 금지 (폰트에 따라 읽기 어렵기 때문) - 함수명은 소문자, 공백은 밑줄로 처리 (get_area O, getArea X) - underscore로 공백을 처리하는 것을 snake_case, 대문자로 공백을 처리하는 것을 CamelCase라고 한다. 변수명은 전자, 클래스명은 후자의 방..