본문 바로가기

프로그래밍167

[Python] 단어 집합(리스트, 튜플)에서 특정 단어와 가장 유사한 단어 찾기 difflib.get_close_matches 이번 포스팅에서는 여러 단어 집합(리스트, 튜플)에서 특정 단어와 가장 유사한 단어를 파이썬(Python)을 이용해서 찾는 방법을 소개한다. 이전 포스팅에서는 단어와 단어의 유사도를 계산하는 방법을 알아보았는데 이번에는 단어 집합 속에서 특정 단어와 가장 유사한 단어를 찾는다는 점에서 차이가 있다. 파이썬 내장 모듈 difflib의 get_close_matches를 이용하면 특정 단어와 가장 유사한 단어를 집합에서 빼내올 수 있다. difflib.get_close_matches 사용법 get_close_matches는 word, possibilities, n, cutoff 총 4개의 인자를 가지며 의미는 다음과 같다. word = 비교 기준이 되는 단어 possibilities = 비교하려는 단어 집합 .. 2022. 5. 1.
[Python] difflib.SequenceMatcher 두 문자열(단어)의 유사도(Similarity) 계산하기 코딩을 하다가 파이썬(Python)으로 두 문자열(단어)의 유사도(Similarity)를 계산해야할 일이 있어서 이를 어찌할까 검색해보다가 Stackoverflow 에서 고수분이 알려주신 테크닉을 여기에 적어보려고 한다. 두 문자열(단어) 유사도 계산 difflib은 파이썬 내장 모듈이다. 여기에 SequenceMatcher를 이용하면 두 단어의 유사도를 알 수 있다. 이때 두 단어의 유사도는 ratio라는 메서드를 이용하면 되는데 이를 이용하여 두 문자열(단어)의 유사도(Similarity)를 계산하는 함수를 만들었다. from difflib import SequenceMatcher def similar(a, b): return SequenceMatcher(None, a, b).ratio() 이제 ma.. 2022. 5. 1.
[Jupyter Notebook] 주피터 노트북 셀 편집창 폭 조절하기(넓게 하기) 이번 포스팅에서는 주피터 노트북(Jupyter Notebook)에서 셀 편집 창의 폭을 넓히는 방법에 대해서 알아본다. 1. 주피터 노트북(Jupyter Notebook)에서 셀 편집창의 폭 조절하기(넓히기) 주피터 노트북(Jupyter Notebook)은 내 주력 파이썬 코딩 도구이다. 그런데 때때로 셀 편집창 폭이 좁아서 코드를 좀만 써도 길어져서 잘리게 된다. 그렇다면 셀 편집창 폭을 넓힐 순 없는 걸까? -> 있다!! 코딩을 시작하기전에 아래와 같이 입력하고 실행한다. 이때 폭을 조절하는 부분은 width 옆에 퍼센티지(백분율)로 나타낸 숫자이며 이 숫자를 이용하여 셀 편집 창의 폭을 조절할 수 있다. 100%는 너무 부담스럽고 80%로 조절하였다. from IPython.display impor.. 2022. 4. 25.
[Python] iter함수와 itertools를 이용하여 메모리를 절약하면서 배열을 순서대로 그룹화(Grouping)하기 이번 포스팅에서는 itertools를 이용하여 배열을 같은 개수를 갖는 그룹으로 쪼개는 함수를 만들려고 한다. 예를 들어 배열(리스트) a = [ 1, 2, 3, 4]가 있다고 할 때 순서대로 2개 원소를 갖는 그룹을 만든다면 결과는 다음과 같다. [(1, 2), (3, 4)] 이제 개념은 알았으니 이를 파이썬으로 구현하려면 어떻게 해야 할까? 1. 원시적인 방법 다음과 같은 함수를 생각해볼 수 있다. 배열의 그룹 개수를 구하고 각 그룹 인덱스 별로 배열의 위치를 중복되지 않게 슬라이싱하는 방법으로 가져올 수 있다. def naive_chunk(arr, n): num_groups = len(arr) // n return [tuple(arr[i*n:(i+1)*n]) for i in range(num_gro.. 2022. 4. 23.
[Python] 순열(Permutation)과 조합(Combination) 구하기 - itertools 오늘은 itertools를 활용한 배열의 순열(Permutation)과 조합(Combination)을 계산하는 방법을 소개한다. 1. 순열(Permutation) 2. 조합(Combination) 1. 순열(Permutation) - itertools.permutations 순열은 특정 집합에서 정해진 개수만큼 서로 다른 원소를 순서를 고려하여 나열하는 방법이다. 파이썬에서는 itertools의 permutations을 통하여 순열을 구할 수 있다. 사용방법은 다음과 같다. permutations( 배열, 뽑는 개수 ) 만약 집합 1, 2, 3, 4에서 2개를 뽑는 순열은 다음과 같이 구할 수 있다. 이때 결과는 바로 나오지 않는다. 왜냐하면 generator 형식으로 나오기 때문에 list나 tuple.. 2022. 4. 22.
[Python] 올림, 내림, 반올림(Ceil, Floor, Round) 이번 포스팅에서는 올림, 내림, 반올림(Ceil, Floor, Round)의 개념과 이를 수행하는 파이썬(Python) 함수를 구현해보자. 1. 반올림(Round) 2. 올림(Ceil) 3. 내림(Floor) 1. 반올림(Round) 1) 정의 반올림 과정은 여러 가지로 설명할 수 있겠지만 나는 0 또는 양수인 경우와 음수인 경우 2가지로 나누어 정의했다. Case 1) 0 또는 양수인 경우 먼저 반올림할 자리수를 정하고 해당 자리를 0으로 바꾸어 준다. 해당 자리에 있던 숫자가 5보다 크거나 같으면 다음 자리에 1을 더하고 그렇지 않다면 내버려 둔다. 예를 들어 양수 2.3을 소수점 첫째 자리에서 올림한다고 해보자. 그러면 올림과정은 아래와 같다. Case 2) 음수인 경우 음수의 경우에는 Case 1.. 2022. 4. 18.
[Python] 파일 크기(용량, 사이즈) 확인하기 - 메가 바이트(MB), 기가 바이트(GB) 등 여러 단위로 파일 크기 확인하기 이번 포스팅에서는 파이썬(Python)에서 파일의 크기(용량, 사이즈)를 알아내는 방법을 알아보고자 한다. 1. 파이썬에서 파일 크기(용량, 사이즈) 확인하기 2. 여러 단위(MB, GB)로 파일 크기(용량, 사이즈) 확인하기 1. 파이썬에서 파일 크기(용량, 사이즈) 확인하기 사람이 코딩을 하다 보면 특정 파일의 크기(용량, 사이즈)를 알고 싶을 때가 있다. 파이썬에서는 os라는 모듈을 이용하면 쉽게 특정 파일의 크기(용량, 사이즈) 알 수 있다. 실제 파일 크기는 os.path.getsize 함수를 사용한다. 이 함수 인자에 파일 크기(용량, 사이즈)를 알고자 하는 파일의 경로를 넣어주면 된다. 그러면 이 함수는 바이트(Byte) 단위로 파일 크기(용량, 사이즈)를 알려준다. import os fil.. 2022. 4. 15.
[Modin] Pandas 보다 빠른 Modin 소개 이번 포스팅에서는 Pandas 보다 빠른 처리 속도를 자랑하는 Modin에 대해서 알아보고자 한다. Pandas는 내 주력 모듈(라이브러리)이다. 하지만 가끔 답답한 속도와 메모리 뻥튀기 현상 때문에 애를 먹은 적이 많다. R에서는 data.table이라는 라이브러리가 있어서 같은 기능이지만 Pandas보다 훨씬 빨라서 의아한 적이 있었다. R에서는 데이터 처리 속도를 향상시키기 위한 라이브러리들이 개발되었는데 도대체 파이썬에서는 Pandas를 대체할 뭔가가 없는지 찾아보다가 Modin이라는 친구를 만났다. 이게 기존 Pandas DataFrame과 호환이 잘되고 함수 사용법 또한 거의 같다고 한다. 뭔가 Modin이 획기적이라는 생각이 들어서 홈페이지 개발 문서를 보고 공부하면서 사용법과 Pandas와.. 2022. 4. 15.
[Jupyter Notebook] ipynb 파일을 py 파일로 변환하기(ipynb to py, 주피터 노트북 to 파이썬) 주피터 노트북 상에서 코딩을 하다 보면 ipynb 파일로 저장된다. 근데 이따금씩(주피터 노트북 파일을 모듈처럼 쓰고 싶을 때) 주피터 노트북 파일을 파이썬 파일로 변환시켜야 할 때가 있다. 즉, ipynb 파일을 py 파일로 변환시키고 싶을 때가 있다. 이번 포스팅에서는 주피터 노트북 파일을 파이썬 파일로 변환(ipynb to py)시키는 방법에 대해서 소개한다. 1. nbconvert 설치하기 2. 주피터 노트북 to 파이썬 변환(ipynb to py) 3. 여러 파일 변환하기 1. nbconvert 설치하기 주피터 노트북 파일을 파이썬 파일로 변환(ipynb to py)은 그냥 되는 것은 아니다. 변환해주는 모듈이 있는데 그게 바로 nbconvert이다. pip 명령을 통해 먼저 설치해줘야 한다. .. 2022. 4. 6.
[Python] 내가 만든 파이썬(Python) 파일(.py) 임포트하기 파이썬은 다른 개발자분들이 만들어 놓은 멋진 라이브러리(또는 패키지)들이 굉장히 많다. 우리는 pip install과 같은 명령을 통해 손쉽게 설치하여 라이브러리(또는 패키지)를 사용한다. 근데 종종 자기가 만들어 놓은 유용한 함수를 한데 모아서 이를 임포트해서 쓸 경우가 있다. 이 경우 쉽게 임포트할 수 있는 방법을 알아보고자 한다(물론 더 쉬운 방법이 있을 수 있다. 모든 방법을 내가 다 알고 있는 건 아니니까 ㅎㅎ). 1. 파이썬(Python) 파일 만들기 2. 임포트 하기 1. 파이썬(Python) 파일 만들기 먼저 아래와 같은 예제용 파이썬 파일을 my_python_file.py 라는 이름으로 만들었다. 두 수를 더하는 함수, 이름과 나이를 입력받아야 하는 사람 클래스(Person)를 만들어 주.. 2022. 4. 5.

맨 위로