일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 문자열
- virtualenvwrapper
- 파이썬
- django framework
- virtualenv
- Django
- Hash function
- 파이썬3
- linked list
- Ipython
- Python3
- 우분투
- 주피터
- jupyter
- Euler
- ubuntu
- Hash Table
- 아나콘다
- IO Visor
- 백준 알고리즘
- 프로젝트 오일러
- 국산 네트워크
- data structure
- FNCP
- 피보나치 수
- project euler
- Python
- 다이나믹 프로그래밍
- KTNF
- Anaconda
- Today
- Total
목록Python3 (20)
태코놀로지
numpy를 활용하여 배열 데이터를 조작해본다.
numpy를 활용하여 만든 배열을 pandas를 활용해서 로드해본다.
numpy 사용 유무에 따르는 속도 차이를 확인해본다. 이번 실습에는 numpy의 속도를 가시적으로 확인하기 위한 것으로 노멀한 연산에 비해 numpy를 활용했을 때의 퍼포먼스 차이를 확인해본다.
이전 실습에서 간단한 연산 작업을 진행했다면, 조금 더 심화된 복잡한 연산 처리를 해본다. 이번 실습도 이전과 마찬가지로 numpy, pandas, matplotlib, 그리고 seaborn을 사용한다.
앞서 진행된 실습에 이어 데이터셋의 데이터를 조작하는 방법에 대해서 알아본다. 이번 실습도 마찬가지로 numpy, pandas, matplotlib을 사용하여 데이터를 조작한다. 또한 동적으로 데이터로부터 정보를 추출할 수 있도록 ipywidgets도 사용해본다. 주로 특정 조건하의 데이터를 선택/선별하고, 추출한 데이터를 토대로 수학적인 연산을 수행해본다. 또한 숫자 정보가 아닌 텍스트/날짜 정보에 대해서도 연산 작업을 다뤄본다.
3.1 Exploring a dataset in the Notebook실습을 위해서 사용할 데이터는 약 18GB에 달하는 데이터의 일부를 추출해서 작게 만든 약 200MB의 csv 타입의 파일이다. 해당 파일을 마이크로소프트 엑셀을 이용해서 확인해보면 아래와 같이 뉴욕시 택시 운영에 대한 다양한 정보를 확인할 수 있다. nyc_data와 nyc_fare 두 가지 파일이 있으며, 그 중 nyc_data는 약 150MB의 크기로 850,000의 행을 지닌 데이터로 아래의 그림과 같이 데이터 집합이 구성되어 있다. 이 정도 양의 데이터를 사용하면 연산 결과를 가시적으로 확인하기에 충분하다. 이 밖에도 국내 정부에서 제공하는 공공데이터도 다양하다. 공공데이터 포탈에서 확인해보면, 약 20,000개의 공공 데이터..
2.5 Functions and Generators파이썬은 다른 언어에 비해 인자(argument) 처리에 있어서 유연한데, 파이썬에서 자주 사용하는 위치 인자 및 키워드 인자에 대해서 알아본다. 인자의 가장 익숙한 형태는 값을 순서대로 상응하는 매개변수에 복사하는 위치 인자(positional arguments)다. 이는 매우 일반적이지만 각 위치의 의미를 사전에 알고 있어야한다는 단점이 있다. 위의 위치 인자가 가지는 문제점을 보완하기 위해서 제공하는 것이 바로 키워드 인자(keyword arguments)다. 키워드 인자는 순서에 상관없이 인자를 매개변수에 복사할 수 있다. 위치 인자와 키워드 인자로 함수를 호출한다면 위치 인자가 먼저 와야 한다. 그러나 보다 파이써닉한 방법에서는 위치 인자와 키워..
2.4 Comprehension for data structure컴프리헨션(comprehension)은 하나 이상의 이터레이터로부터 파이썬의 자료구조를 만드는 컴팩트한 방법이다. 컴프리헨션은 비교적 간편한 구문으로 반복문과 조건 테스트를 결합할 수 있도록 해준다. 때때로 컴프리헨션을 사용하는 것은 초급 이상의 단계에서 파이썬을 어느 정도 알고 있다는 것을 의마한다. 즉, 더 파이써닉하게 파이썬을 사용한다는 것을 의미한다. 리스트 컴프리헨션(List Comprehension)대표적인 컴프리헨션 방법에는 리스트 컴프리헨션이 있다. 대괄호 안에 for 구문을 사용하여 리스트를 초기화 함으로써 컴프리헨션 기능을 수행할 수 있다. 리스트의 요소로 리스트가 포함될 수 있는 만큼, 컴프리헨션 역시 중첩되서 사용이 가..
2.3 #, \, if, while and for loop코드를 읽는 사람 또는 미래의 자신에게 텍스트 정보를 전달할 수 있는 가장 쉬운 문법, 주석에 대해서 알아보자. 프로그램에서 주석(comment)은 인터프리터에 의해 무시되는 텍스트의 한 부분으로, 코드를 설명하거나 나중에 어떤 문제를 고치기 위해 표시를 하는 등 다양한 목적으로 주석을 사용한다. '#' 문자를 이용해서 주석을 표시한다. '#' 문자가 시작된 곳부터 그 라인의 마지막까지가 주석으로 처리된다. 파이썬에서는 다수의 라인을 주석으로 처리하는 방법을 기본적으로 제공하고 있지는 않으나, 확장 플러그인을 사용하면 가능하다. 파이써닉하게 코딩하는 방법 중 가장 기본적인 것은 한 라인의 최대 문자수를 80자 이내로 유지하는 것이다. 이 길이 안에..
2.2 List, Tuple, Dictionary, and Set이번 시간에는 파이썬이 제공하는 네 가지 서로다른 타입의 자료구조에 대해서 알아보고, 각 구조가 갖는 특징에 대해서 알아보자. 파이썬에는 리스트, 튜플, 사전(dict), 집합(set) 자료구조가 있다. 그리고 각 자료구조마다 데이터에 접근하는 방법 및 데이터를 추가/삭제하는 방법이 상이하게 다르다. 또한 자료구조가 갖는 특징에 따라서 데이터의 변경 유무의 차이점도 있다. 따라서 대표되는 네 가지 자료구조의 특/장점과 어떤 상황에 사용해야 적합한 지 파악할 필요가 있다. 리스트, 튜플, 사전, 집합 자료구조 순서에 따라서 각 자료구조의 특징 및 대표되는 함수 호출에 대해서 정리해본다. 리스트(List) 자료구조파이썬이 제공하는 시퀀스 자료구..