*args and **kwargs (불특정 수의 함수인수) 얼마나 많은 수의 인수들이 지정될 지 모를때 사용.def print_args(*args): for arg in args: print(arg)print_args(1, 2, 3) def print_kwargs(**kwargs): for key, value in kwargs.items(): print(f"{key} : {value}")print_kwargs(name="john", age=20) data science/python 2025.02.02
(Colab) Youtube 영상을 mp3 화일로 다운로드 Youtube 뮤직 동영상이나 유용한 동영상의 음성부분만 mp3 로 다운로드하고 플때 google 에서 "youtube to mp3" 로 검색하면 여러 사이트가 나오지만 이상한 음란 광고들이 나오기 때문에 꺼리게 되고 사이트 이동이 귀찮다.그래서 아래와 같이 직접 python으로 google colab에서 실행하면 아주 간단하게 다운로드 받을 수 있도록 하자. 사전 준비물: google account google 에 접속에 google 드라이브를 선택내 드라이브에서 마우스 오른쪽 클릭 메뉴에서 Google Colaboratory 를 선택 「+ Code」로 아래와 같이 코드 작성 ( 세션이 종료되면 설치된 패키지가 사라지니 Colab 접속시에 실행 ) !pip install pytubefix 「+ Co.. data science/python 2025.02.01
lambda, map, filter, reduce lambda 함수를 고정으로 정의해 놓지 않고 필요시에 간단한 형식으로 실행하는 무명함수lambda 파라미터1, 파라미터2, ... : 연산 (파라미터1....)def adder(a, b): return a + badder_lambda = lambda a, b: a + bdef to_upper(s): return s.upper()to_upper_lambda = lambda s: s.upper() 프로그래밍을 편의를 위해 미리 정의해 둔 함수들 (map, filter, reduce)map map(function_to_apply, list_of_inputs)입력값의 수 = 처리후의 값의 수items = [1, 2, 3, 4, 5] squared = []for i in items: sq.. data science/python 2025.01.25
if else 를 간단히 (tenary operator) 종래의 if else 문order_total = 247if order_total > 100: discount = 25else: discount = 0print(order_total, discount) 간단히discount = 25 if order_total > 100 else 0 print(order_total, discount) data science/python 2025.01.24
key 리스트와 value 리스트를 조합해 dict 생성 keys = ['a', 'b', 'c', 'd']values = range(4) # = [0, 1, 2, 3]d = dict(zip(keys, values))print(d){'a': 0, 'b': 1, 'c': 2, 'd': 3} data science/python 2025.01.23
Redis Pub/Sub 사용용도: 인터 PC간 통신, 인터 프로세스 통신, 인터 쓰레드 의 한방향 리얼타임 메세지 통신 ※ Redis : 메모리상의 데이터 구조체로서 퍼포먼스와 다양성으로 유명일본 모TV방송사의 PGA일본투어 생방송에 영어 선수명, 순위정보등의 Telop을 리얼타임으로 일본어로 변환하는 프로젝트에 사용. pip install redis Publisher (제공자) import redis # Connect to local Redis instance redis_client = redis.StrictRedis(host=''localhost'', port=6379, db=0) channel = ''my_channel'' while True: message = input("Enter a message: ".. data science/python 2024.09.09
Thread vs ThreadPool vs ThreadPoolExecutor ThreadThreadPool ThreadPoolExecutor생성쓰레드 수수동 Thread 1 = Task 1개파라미터로 지정가능디폴트=(논리CPU수 + 4)파라미터로 지정가능디폴트=(논리CPU수 + 4)최적의 용도적은 수로 동시에 실행이 필요한 경우모든 쓰레드가 동시에 실행되지는 않고 비어 있거나 I/O 등의 기다림이 있어 양보된 쓰레드에 실행되게 된다.같은 태스크 내용으로 파라미터만 달리하여 많은 수의 쓰레드를 실행하는 경우.모든 쓰레드가 동시에 실행되지는 않고 비어 있거나 I/O 등의 기다림이 있어 양보된 쓰레드에 실행되게 된다. 같은 태스크 내용으로 파라미터만 달리하여 많은 수의 쓰레드를 실행하는 경우.결과의 리턴불가능가능가능취소기능불가능불가능실행되기 전의 태스크에 한해가능※ ThreadPool.. data science/python 2024.05.11
threading / multiprocessing / asyncio wikipedia에서 랜덤 100 페이지의 타이틀을 화일로 저장하는 샘플로서 multiprocessing과 async 를 이용하여 처리속도의 향상을 보여주고 있다.multiprcessing : 계산등의 CPU 의존적인 처리에 유리 async : 화일 I/O, 네트워크 I/O 등의 Blocking처리에 유리위의 둘을 이용하여 처리속도를 향상import asyncio # Gives us async/await import concurrent.futures # Allows creating new processes import time from math import floor .. data science/python 2024.05.02
image byte 데이터 <-> numpy string 인터넷 스트림으로 이미지를 전송할 경우 이미지 데이터는 string 형식으로 변환해야 한다.import numpy as np import base64 import sys def base64_encode_image(a): # base64 encode the input NumPy array return base64.b64encode(a).decode("utf-8") def base64_decode_image(a, dtype, shape): # if this is Python 3, we need the extra step of encoding the # serialized NumPy string as a byte object if sys.version_info.major =.. data science/python 2024.04.29
two list -> dict keys, values = [], [] keys.append('a') keys.append('b') keys.append('c') values.append(1) values.append(2) values.append(3) mydic = dict(zip(keys, values)) data science/python 2024.02.27