반응형

python 8

자료형 내의 최대 소수 구하기

최대소수 구하기 소수란 자기자신과 1로만 나누어지는 수로, 2, 3, 5, 7, 11... 로 거의 규칙없이 존재한다. 판별 조건 소수인지 판별하는 방식으로는 자신보다 작은 모든 숫자로 나누어보고 나누어지는 숫자가 없으면 소수라고 판별할 수 있다. 최적화 하지만 모든 숫자를 나누면 비효율적이므로, 대칭성의 원리를 이용하자. 2부터 자신의 제곱근까지만 탐색한다. def is_prime(num): for i in range(2, int(math.sqrt(num))+1): if num%i == 0: return False return True C언어 자료형 최댓값 최대 소수 (signed) int (long) 2,147,483,647 2,147,483,647 unsigned int (long) 4,294,96..

python 2022.11.15

한영타 변환기를 만들어보자! [3] (Pyinstaller로 실행파일 만들기)

한영타 변환기를 만들어보자! [1] 한영타 변환기를 만들기 위해 설계된 기본적인 구조는 이렇게 된다. 첫번째로 영타를 한국어로 변환해 주었다. 각 영타에 대응되는 한국어를 한글자씩 딕셔너리에 넣어주고, 입력된 영타를 읽 jmook.tistory.com 한영타 변환기를 만들어보자! [2] 한영타 변환기를 만들어보자! [1] 한영타 변환기를 만들기 위해 설계된 기본적인 구조는 이렇게 된다. 첫번째로 영타를 한국어로 변환해 주었다. 각 영타에 대응되는 한국어를 한글자씩 딕셔너 jmook.tistory.com 저번에 UI까지 구성하여 사용자가 쉽게 사용할 수 있도록 만들어보았다. 이번에는 파이썬을 모르는 사람도 사용할 수있도록 컴파일하여 한파일로 만들어 볼 것이다. 파이썬 관련 지식이 있으신 분들은 파이썬으로 ..

python 2022.07.04

한영타 변환기를 만들어보자! [2] (tkinter로 UI만들기)

한영타 변환기를 만들어보자! [1] 한영타 변환기를 만들기 위해 설계된 기본적인 구조는 이렇게 된다. 첫번째로 영타를 한국어로 변환해 주었다. 각 영타에 대응되는 한국어를 한글자씩 딕셔너리에 넣어주고, 입력된 영타를 읽 jmook.tistory.com 저번 글에 이어서 한영타 변환기를 만들것이다. 저번에 변환에 필요한 기본 알고리즘을 구현했으니, 이번 시간에는 입력과 출력을 보기좋게 할 수있는 인터페이스를 만들거다. 파이썬에는 tkinter라는 ui를 만들수있는 기본 라이브러리가 있다. import tkinter #(python3) import Tkinter #(python2) 특이 한 점은 기본 라이브러리인데도 파이썬2와 파이썬3의 이름이 대문자 하나가 다르다는 것이다. (사용할 때 주의하자!!!) 간..

python 2022.07.04

한영타 변환기를 만들어보자! [1] (알고리즘 구성)

한영타 변환기를 만들기 위해 설계된 기본적인 구조는 이렇게 된다. 첫번째로 영타를 한국어로 변환해 주었다. 각 영타에 대응되는 한국어를 한글자씩 딕셔너리에 넣어주고, 입력된 영타를 읽어 한글로 변환하였다. ko_dict = {'q':'ㅂ', 'Q':'ㅃ', 'w':'ㅈ', 'W':'ㅉ', 'e':'ㄷ', 'E':'ㄸ', 'r':'ㄱ', 'R':'ㄲ', 't':'ㅅ', 'T':'ㅆ', 'y':'ㅛ', 'u':'ㅕ', 'i':'ㅑ', 'o':'ㅐ', 'p':'ㅔ', 'a':'ㅁ', 's':'ㄴ', 'd':'ㅇ', 'f':'ㄹ', 'g':'ㅎ', 'h':'ㅗ', 'j':'ㅓ', 'k':'ㅏ', 'l':'ㅣ', 'z':'ㅋ', 'x':'ㅌ', 'c':'ㅊ', 'v':'ㅍ', 'b':'ㅠ', 'n':'ㅜ', 'm..

python 2022.07.04

Recurrence plot (시계열 데이터를 학습시켜보자!)

딥러닝 분야는 최근 자연어, 이미지 처리를 분석하는데 활발히 사용되고있는 추세이다. 기존에 방식으로는 시계열 데이터는 1차원이므로 2d CNN과 같은 이미지 처리에 사용되는 신경망에 사용 될 수없다. 따라서 1차원 배열을 이미지화 하는 Recurrence plot을 사용 해야한다. 흔히 히트맵이라고 불리는 그래프를 생각하면 이해가 쉽다. 위의 사진이 왼쪽의 그래프를 오른쪽의 Recurrence plot으로 바꾼 이미지다. 파이썬에 관련 라이브러리를 통해 간단하게 구현할 수도있지만, numpy라이브러리를 활용해서도 만들수있다. def Recurrence_plot(s, eps=None, step=None): s = np.array(s) if eps == None: eps = 0.01 if step == No..

python 2022.05.25

python 경로 및 현재 경로의 파일 리스트

기본적인 파이썬 경로는 파이썬 파일의 위치가 아닌 파이썬을 실행하는 터미널의 위치가 현재 위치로 설정된다. 아래의 코드를 사용하여 파이썬이 위치한 경로를 얻고 해당 폴더 내에서 작업하여 다른파일들의 관리를 쉽게한다. 실행 파이썬 파일의 위치 current_path = os.path.dirname(os.path.realpath(__file__)) 현재 폴더내의 파일 리스트로 저장 current_path = os.path.dirname(os.path.realpath(__file__)) file_list = os.listdir(current_path) 현재 폴더내의 파일 프린트 current_path = os.path.dirname(os.path.realpath(__file__)) file_list = os...

python 2022.01.07

Open3d - Hidden Point Removal (+논문리뷰)

HPR (Hidden Point Removal) open3d 라이브러리에서 제공하는 기능으로 hidden_point_removal이 있다. 입력 변수로 시점과 구의 반경(R)을 받아 picking simulator의 기능인 정해진 시점에서 볼 수 있는 point들을 골라 주는 기능을 한다. 해당 기능은 이 논문을 바탕으로 제작되었으며, 라이브러리의 내장 함수인 만큼 매우 빠른 연산속도를 보인다. 하지만 모든 point를 하나씩 모두 찍어보는 raycast 방식에 비해 다소 정확도가 떨어지는 단점이 있다. diameter = np.linalg.norm(np.asarray(ply.get_max_bound()) - np.asarray(ply.get_min_bound())) _, pt_map = ply.hidd..

python 2021.09.07

python Multiprocessing 연구

Multiprocessing 하나의 프로그램을 한개의 프로세서가 아닌 여러 프로세서가 동시에 처리하는 것으로, python2.6에 처음 멀티프로세싱 모듈이 추가되었으며 관련 라이브러리는 threading 과 multiprocessing 이 있다. 내가 사용한 pool.map 방식은 동적변수 1개만 입력가능하기때문에 partial 함수로 나머지 정적변수는 묶어 주었다. 코드 활용(pool) 예) with poolcontext(processes=activate_CPU) as pool: result_list = list(tqdm(pool.imap_unordered(partial(find_intersection_point, Source_loc = pSource, Source_target_loc = tSource..

python 2021.08.27
반응형