목록python (15)
Stack Building
https://blog.naver.com/21ahn/221329219163 [python] 대표적인 크롤링 3가지(html, Ajax, JavaScript) (Ask Django) 출처 AskDjangohttps://www.askcompany.kr/vod/crawling/127/ https://askdjango.git... blog.naver.com 요약 1. HTML BeautifulSoup으로 파싱해서 얻어오기 2. Ajax 랜더링 Network에서 데이터 주소 가져오기 3. JavaScript 소스 가져와서 정규표현식으로 처리하기 4. 그 외 Selenium 사용
플라스크 서버에서 API 방식으로 데이터를 전송하면서 json을 payload로 사용하게 되었다. 객체나 메소드를 보내기보다 스트링을 전달하는 것이 오류 발생을 막기에 좋다. json으로 보낼 때에는 jsonify({'key':value, ...})를 return 하는 함수를 짜고, requests를 사용해 post 방식으로 url에 보내면 된다. 받아올 때에는 request.get_json()을 사용한 후 일반적인 파이썬 딕셔너리에 접근할 때처럼 접근하면 된다.
이 글은 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, 안에 있는 데이..
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라고 한다. 변수명은 전자, 클래스명은 후자의 방..
프로그램을 여럿이 개발할 때에는 필요한 기능별로 나눠 작성한 후 합치게 된다. 기능별로 프로그램을 나누는 방법은 함수/객체/모듈로 나누는 것이다. 이 글에서 다루는 것은 함수이다. 1. 함수란 어떤 일을 수행하는 코드의 덩어리다. 코드를 논리적인 단위로 분리할 수 있으며, 인터페이스만 알면 타인의 코드도 사용할 수 있도록 하기 위해 캡슐화를 한다. 함수가 위에 작성되어 있어도 메인 프로그램부터 실행되니 초보자들은 유의해야 한다. 2. 파라미터parameter는 함수의 입력 값 인터페이스이고, 아규먼트argument는 실제 파라미터에 대입된 값이다. 파라미터는 설계할 때의 요소, 아규먼트는 실제 사용할 때의 요소를 말한다고 보면 된다. 파라미터와 리턴값 유무에 따라 함수의 형태가 달라진다. 필요에 따라 적..