| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- UDF
- XAI
- tensorflow text
- GenericGBQException
- 유튜브 API
- Airflow
- grad-cam
- TensorFlow
- youtube data
- Retry
- API Gateway
- airflow subdag
- 공분산
- GCP
- gather_nd
- chatGPT
- BigQuery
- correlation
- 상관관계
- integrated gradient
- flask
- subdag
- hadoop
- login crawling
- API
- session 유지
- top_k
- spark udf
- requests
- Counterfactual Explanations
- Today
- Total
목록Python (37)
데이터과학 삼학년
pandas를 이용한 데이터 분석을 하다보면 간단한 함수를 적용하여 새로운 컬럼을 생성하는 것은 매우 흔한일이다. 예를 들면 아래 코드 예시처럼 커스텀 function이나 lambda를 이용하여 원하는 형태의 컬럼을 생성한다. def detect_language(text): """Detects the text's language.""" translate_client = translate.Client() result = translate_client.detect_language(text) return result["language"] # 해당 메시지가 어느나라 언어인지 확인하는 컬럼 생성 df['langauge']= df['message'].apply(detect_language) # 메시지 길이 산정 d..
import pandas as pd data = {'name':['michael','louis','jack','jasmine'], 'grades':[90,80,70,60], 'result':['N/A','N/A','N/A','N/A']} df = pd.DataFrame(data,columns=['name','grades','result']) # name grades result #0 michael 90 N/A #1 louis 80 N/A #2 jack 70 N/A #3 jasmine 60 N/A # grades 값이 90 이라면 result 는 'A' df.loc[df['grades'] == 90, 'result'] = 'A' # grades 값이 80 이라면 result 는 'B' df.loc[df['..
데이터 과학에서 단연 제일 잘알려지고, 많은 사람들이 사용하는 것이 pandas라고 해도 과언이 아니다. 이 pandas를 조금 더 빠르고 효율적으로 사용할 수 있는 방법에 대해 소개하려 한다. 바로 Modin 이다. Pandas 의 한계 pandas는 상대적으로 매우 큰 데이터셋에서 다루는데 비 효율적이며(메모리문제), 구조적으로 paralleizing이 어려운 구조를 가지고 있다. 그 이유는 아래와 같다. 1. single-threaded : multiple cores를 사용하기 어렵다는 것을 의미 2. in memory 기반으로 작동 : out-of-memory erro를 종종 경험할 수 있음 왜 pandas는 parallizing이 어려운가? pandas 의 600여개가 넘는 functions들을..
개발을 하다보면 내가 짠 코드가 의도에 맞게 잘 작동하는지를 한번씩 점검할 필요가 있다. 개발하는 파일마다 그때그때 테스트를 하면서 완료할 수도 있지만, 대규모의 프로젝트로 .py\ 파일이 많아진다면 테스트가 조금 성가실 수 있다. pytest를 이용하면, 접두사 test_ .py or 접미사 _test.py 가 붙은 파일들을 자동으로 가지고와 해당 파일을 실행하고, 실행된 결과에 대해 확인할 수 있다. # content of test_sample.py def inc(x): return x + 1 def test_answer(): assert inc(3) == 5 pytest를 실행시키면, 아래와 같은 결과가 나온다. $ pytest =========================== test sessio..
데크(deque)의 개념 보통 큐(queue)는 선입선출(FIFO) 방식으로 작동한다. 반면, 양방향 큐가 있는데 그것이 바로 데크(deque)다. 즉, 앞, 뒤 양쪽 방향에서 엘리먼트(element)를 추가하거나 제거할 수 있다. 데크는 양 끝 엘리먼트의 append와 pop이 압도적으로 빠르다. 컨테이너(container)의 양끝 엘리먼트(element)에 접근하여 삽입 또는 제거를 할 경우, 일반적인 리스트(list)가 이러한 연산에 O(n)이 소요되는 데 반해, 데크(deque)는 O(1)로 접근 가능하다. from collections import deque deq = deque() # Add element to the start deq.appendleft(10) # Add element to ..
모듈은 스크립트 파일이 한 개지만 패키지는 폴더(디렉터리)로 구성 ▼ 그림 45-5 패키지 폴더 구성 먼저 프로젝트 폴더(C:\project) 안에 calcpkg 폴더를 만듭니다. 그리고 다음 내용을 calcpkg 폴더 안에 __init__.py 파일로 저장하세요. calcpkg/__init__.py # __init__.py 파일은 내용을 비워 둘 수 있음 폴더(디렉터리) 안에 __init__.py 파일이 있으면 해당 폴더는 패키지로 인식됩니다. 그리고 기본적으로 __init__.py 파일의 내용은 비워 둘 수 있습니다(파이썬 3.3 이상부터는 __init__.py 파일이 없어도 패키지로 인식됩니다. 하지만 하위 버전에도 호환되도록 __init__.py 파일을 작성하는 것을 권장합니다). 45.3.1 패..
1과 자기 자신을 약수로 갖는 수를 소수(prime number)라고 한다. prime 넘버를 쉽게 구하기위해 에라토스테네스라는 수학자의 소수구하는 방법을 확인해볼 필요가 있다. https://ko.wikipedia.org/wiki/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98_%EC%B2%B4 에라토스테네스의 체 - 위키백과, 우리 모두의 백과사전 수학에서 에라토스테네스의 체는 소수를 찾는 방법이다. 고대 그리스 수학자 에라토스테네스가 발견하였다. 알고리즘[편집] 2부터 소수를 구하고자 하는 구간의 모든 수를 나열한다. 그림에서 ko.wikipedia.org def prime_list(n): sieve = [True] ..
파이썬 리스트에서 멀티플한 key로 정렬하는 방법에 대해 알아본다 lambda를 이용해 여러 키를 tuple로 받게 해주면 된다. 즉, tuple의 순서에 따라 순서대로 정렬 된다. s = [ [12, 'tall', 'blue', 1], [2, 'short', 'red', 9], [4, 'tall', 'blue', 13] ] #1번 인덱스 오름차순, 0번 인덱스로 오름차순 정렬 s = sorted(s, key = lambda x: (x[1], x[3])) print(s) [ [2, 'short', 'red', 9], [12, 'tall', 'blue', 1], [4, 'tall', 'blue', 13] ] #1번 인덱스 오름차순, 3번 인덱스로 내림차순 정렬 s = sorted(s, key = lambd..