일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Counterfactual Explanations
- top_k
- BigQuery
- Retry
- API Gateway
- TensorFlow
- spark udf
- Airflow
- correlation
- 유튜브 API
- flask
- airflow subdag
- integrated gradient
- API
- chatGPT
- subdag
- login crawling
- XAI
- 상관관계
- youtube data
- gather_nd
- hadoop
- session 유지
- UDF
- 공분산
- GenericGBQException
- grad-cam
- GCP
- requests
- tensorflow text
- Today
- Total
목록Python (36)
데이터과학 삼학년
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..
파이썬은 모든것을 객체화할 수 있는 언어이다. 즉, 함수(method) 자체도 하나의 객체로, 인자로 받을 수 있다. First-class function : 함수 자체를 인자로 다른 함수에 전달, 다른 함수의 결과값 리턴, 함수를 변수자체로 할당할 수 있음 def add_one(n): return n+1 func = add_one func(1) #=== 2 def calc_sq(digit): return digit ** 2 def calc_cb(digit): return digit ** 3 def func_calc(function, digit_lst): result = [] for i in digit_lst: result.append(function(i)) return result func_calc(c..