1. 멀티 프로레스와 멀티 스레드 - 프로세스(process) : 운영 체제에서 실행되는 각 프로그램은 각각이 벼도의 프로세스 - 각 프로세스에는 하나 이상의 스레드(thread)가 있음 - 한 프로세스에 여러개의 스레드가 있으면 여러 작업을 마치 동시에 수행하는것처럼 보임. - 멀티 프로레스와 멀티 스레드 두가지 방법 사용시 프로그램의 작업 부하를 줄일 수 있음. * 멀티 프로세스 - 별도의 메모리 영역을 가지며, 특별한 메커니즘으로만 통신할 수 있음 - 프로세서는 각 스레드에 대해 별도의 레지스터 집합을 불러오거나 저장하는데, 프로세스 간 데이터 공유와 통신용으로는 비효율적 - subprocess 모듈 사용 * 멀티 스레드 - 단일 프로세스 내의 멀티 스레드는 동일한 메모리에 접근 - 스레드는 데이터..
0. hashlib - 1. 예제 1 2 3 4 5 6 7 import json import hashlib block = {'index': 1, 'timestamp': 1570176533.2550528, 'transactions': [], 'proof': 100, 'previous_hash ': '1'} block_string = json.dumps(block,sort_keys = True).encode() print(hashlib.sha256(block_string).hexdigest()) Colored by Color Scripter cs >> d9360c4ec2b62490970a360964e32f21299c52c29be7e9f46d1787af7cc31c82
1. partial 함수 - 함수를 만들어 넘길때 자주 사용 1 2 3 4 5 6 7 8 from functools import partial def sum(a,b): print(a+b) f = partial(sum,20) f(1) >>21 cs 2. lambda 함수 - lambda expression - 함수를 간편하게 작성할 수 있어서 다른 함수의 인수로 넣을때 주로 사용 - 매개변수, 연산자, 값 등을 조합한 식으로 반환값을 만드는 방식 1 2 3 sum_ex = lambda x : x + 20 sum_ex(2) cs 1. 파이썬코딩도장 2. 위키독스
0. numpy 1. numpy reshape 정리 1 2 3 import numpy as np a = np.array([1,2,3,4,5,6,7,8,9,10,11,12]) print(a.reshape(-1,3)) cs >>[[ 1 2 3] >>[ 4 5 6] >>[ 7 8 9] >>[10 11 12]] 1 2 print(a.reshape(-1,3).mean(axis=0)) #[5.5 6.5 7.5] print(a.reshape(-1,3).mean(axis=1)) #[ 2. 5. 8. 11.] cs >>[5.5 6.5 7.5] >>[ 2. 5. 8. 11.]

1. 위키백과 - 데시메이션 0. 데시메이션(decimation)? - 신호처리에서? 혼신없는 대역폭 축소를 의미 - decimation은 신호의 샘플링 레이트를 줄이는 과정 1. signal.decimate scipy 1 2 3 4 5 6 7 8 9 10 11 from scipy import signal data = np.array([n for n in range(1,1001)]) data = data.reshape(-1,2) downsample_rate = 2 answer=signal.decimate(data[:, 0].ravel(), downsample_rate) print(f'answer : {answer}') print(f'answer_len : {len(answer)}') cs >> [ 0.9..
0. *args, **kargs - 함수의 인자가 가변길이일 때 사용 - args (non-keworded arguments) - kargs(keyworded arguments) 1. args (non-keworded arguments) 1 2 3 4 5 6 7 #개수 제한 없이 튜플 형태의 인수 받아옴 def func(*args): print(args) print(type(args)) func(1,2,3,4) cs (1, 2, 3, 4) 2. kargs(keworded arguments) 1 2 3 4 5 6 7 #개수 제한없이 딕셔너리 형태 인수 받기 def func2(**kwargs): print(kwargs) print(type(kwargs)) func2(a=1,b=3) cs {'a': 1, 'b..
0. 동적계획법(dynamic programming) - 복잡한 문제를 재귀를 통해 간단한 하위 문제로 분류하여 단순화하여 해결하는 방법 - 어떤 문제가 최적부분구조(optimal substructure)와 중복되는 부분문제(overlapping subplot problem)을 갖고 있다면, 동적 계획법으로 해결할 수 있음 - 최적 부분 구조는 답을 구하기 위해서 했던 계산을 반복해야 한다는 문제의 구조 1. 데커레이터? - 소스코드에 있는 함수를 '표시'해서 함수의 작동을 개선할 수 있게 해줌 - 다른 함수를 인수로 받는 콜러블(데커레이트된 함수) - 데커레이트된 함수에 어떤 처리를 수행하고, 함수를 반환하거나 함수를 다른 함수나 콜러블 객체로 대체 - 다른 function의 기능을 조작하여 새로운 f..

1. 순차검색 - 배열이 정렬되어 있지 않거나, 연결 리스트와 같이 입력이 동적으로 할당되는 경우 사용 * 배열이 정리 안되어 있을 때 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 import pytest def sequential_search(seq,n): for item in seq: if item == n: return True return False def test_sequential_search(): seq = [1,5,6,8,3] n1 = 5 n2 = 7 assert(sequential_search(seq,n1) is True) assert(sequential_search(seq,n2) is False) if __name__ ..
파이썬의 숫자는 불변객체타입 파이썬에서 튜플, 문자열, 바이트 ->>> 불변객체타입 리스트, 바이트 ->>> 가변객체타입 * 일반적으로 불변 객체 타입은 객체 타입보다 효율적 * 일부 컬렉션 데이터 타입은 불변데이터 타입으로 인덱싱할 수 있다. 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 32 ##1 .가변성 #리스트 예제 myList = [1,2,3,4] newList = myList[:] newList2 =list(myList) #set 예제 people = {"버피", "에인절", "자일스"} slayers = people.copy() slayers.discard("자일스") slayers.re..
1234567891011121314151617181920212223 unixtime1 = 1514735577.775000000000unix_timestamp_plus_5_min = unixtime1 + (6 * 60) #6분후print("unix_timestamp_plus_5_min",unix_timestamp_plus_5_min) a = 1514734859.55b = 1514735272.40datetimeobj1 = datetime.fromtimestamp(a).strftime('%H:%M:%S')datetimeobj2 = datetime.fromtimestamp(b).strftime('%H:%M:%S') print("datetimeobj1",datetimeobj1) #00:40:59print("dat..