본문 바로가기
반응형

Python34

[Python] 파이썬 프로파일링 (w/ line_profiler) 코드를 짜다보면 어느 부분에서 가장 오래걸리는지 체크를 할 때 time 패키지를 사용해서 현재시간에서 시작 시간을 빼주곤 한다. 매 라인 적어주기가 엄청 귀찮음.. Line-by-line profiling을 통해 쉽게 해결하자. 사용 방법 - pip install line_profiler - 기본적으로 타겟 함수 def위에 @profile을 적어주어야 한다. (파일로 저장할 경우) - 터미널에서는 python 명령어가 아닌 kernprof -l -v 명령어를 사용한다. (kernprof -l -v test.py) - 주피터 노트북에서는 아래와 같이 프로파일러를 로딩하고 실행한다. %load_ext line_profiler %lprun -u 1e-6 -f test for _ in range(100): te.. 2023. 2. 28.
[Python] Garbage Collection 파이썬 가비지 콜렉션 기존 메모리 관리의 문제점 메모리를 직접 관리해야하는 언어들은 크게 두 가지 관점에서 문제점을 가지고 있다. 필요 없는 메모리를 삭제: 메모리를 사용하고 비우지 않는 경우, 메모리 누수가 발생할 수 있고 장기적인 관점에서 치명적일 수 있음 사용중인 메모리 삭제: 존재하지 않는 메모리에 접근하려고 하면 프로그램이 중단되거나 데이터가 손상될 수 있음 이러한 문제를 해결하기 위해 자동 메모리 관리(Automatic Memory Management) 시스템이 등장하게 되었음 GC module 사용 gc 모듈을 사용하여 가비지 컬렉션 통계를 확인하거나 가비지 컬렉터의 동작을 변경할 수 있다. -- gc 모듈을 사용하며 get_threshold() method를 사용하여 가비지 컬렉터의 구성된 임계값을 확인할 수 .. 2023. 2. 6.
[Python] 파이썬에서 YAML(야믈) 사용하기 xml과 json 과 같은 데이터 포맷은 많이 사용해봤다. 그러나 xml과 json 은 많은 괄호나 하이픈(-) 등으로 인해 직관적으로 사용하기 어렵다. 쿠버네티스(K8s)에서 API를 전송할 땐, json 규격도 사용이 되기는 하나 일반적으로 ymal(야믈), yml 포맷을 권장하고 있다. yaml 포맷의 파일이 준비가 되어있다면 python에서 패키지를 import 하여 사용할 수 있다. 패키지가 설치되어 있지 않은 경우 설치하면 된다. !pip install PyYAML 간단하게 yaml 파일을 하나 생성해보고 읽어보자. test.yaml film: 'club' genre: 'Action' release: year: 2002 actors: main: - 1st: 'Brad Pitt' 2nd: 'Ed.. 2022. 12. 13.
librosa와 soundfile 패키지를 이용한 음성 다운 샘플링 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 import librosa import soundfile import os def down_sample(source_path,dest_path): extlist = ['.wav', '.pcm'] for (path, dir, files) in os.walk(source_path): for filename in files: ext = os.path.splitext(filename)[-1] if ext in extlist: wav_source_path = source_path + os.sep + filename wav_dest_path = dest_path + os.sep + filename y,sr = librosa... 2022. 9. 29.
[Flask] Python으로 REST API 만들기 간단한 예제를 통해 python flask로 REST API 만드는 방법을 알아보자. 만들 API 리스트는 아래와 같다. 직원들의 정보를 CRUD 해보겠다. METHOD URL 비고 GET /employees 모든 직원 조회 GET /employees/ ID로 직원 조회 POST /employees 직원 추가 PUT /employees/ ID로 직원 정보 업데이트 DELETE /employees/ ID로 직원 정보 삭제 요구사항 1. Flask 라이브러리 설치 코드 테스트 postman과 같은 프로그램을 설치해서 테스트를 해도 되지만 따로 설치하지 않고 온라인 API 테스팅 툴에서 진행했다. 링크: https://reqbin.com/ Online API Testing Tool | Test Your API.. 2022. 8. 18.
[Pandas] 데이터프레임 날짜/시간을 날짜로 변환하는 방법 pandas에서 datetime을 날짜만을 가져와서 사용해야할 때가 있다. .dt.date 함수 를 사용하면 이 작업을 쉽게 수행할 수 있다. 예를 들어 아래와 같이 데이터프레임에 날짜/시간 형태로 이루어져 있다고 하자. 1 2 3 4 5 import pandas as pd #convert datetime column to just date df['regdate'] = pd.to_datetime(df['regdate']).dt.date Colored by Color Scripter cs 다음과 같이 간단하게 한 줄로 변환할 수 있다. 2022. 8. 16.
[Error] Can't get attribute '_unpickle_block' on <module 'pandas._libs.internals' 해결 방법 pickle 형식의 파일을 읽으려고 할 때 Can't get attribute '_unpickle_block' on 2022. 5. 25.
[Error] konlpy import 에러 (AttributeError: module 'tweepy' has no attribute 'StreamListener') 자연어 처리를 할 때 문장을 단어 단위로 토큰화하거나, 형태소 분석을 하는 등 많은 작업이 필요하다. 영어를 처리하는데에는 nltk 패키지, 한국어를 처리할 때에는 konlpy 패키지를 가장 많이 쓴다. 이번에 가상환경을 새로 설정하고 패키지를 설치한 후 konlpy를 import할 때 아래와 같은 에러메시지가 발생하였다. import konlpy >> AttributeError: module 'tweepy' has no attribute 'StreamListener' 해결 방법 위와 같은 오류 메시지가 발생하는 이유는 konlpy 패키지가 tweepy 패키지에 포함된 StreamListener 클래스를 사용하고 있는데 이것을 불러오지 못한 것이다. 오류가 발생한 원인을 아래와 같이 생각해 볼 수 있다... 2022. 2. 10.
[Python] matplotlib plot 차트 축 시간 간격 조절하기 데이터프레임을 시간 컬럼 기준으로 plot을 그리면 아래와 같이 띄엄띄엄 그려지게 된다. 예시 코드 subway_df = subway_df.sort_values('date_column', ascending=True) plt.plot(subway_df['date_column'], subway_df['cnt'], label='subway') bus_df = bus_df.sort_values('date_column', ascending=True) plt.plot(bus_df['date_column'], bus_df['cnt'], label='bus') plt.xlabel('date') plt.ylabel('count') plt.legend(loc=2) plt.xticks(rotation=45) plt.show.. 2022. 2. 8.
반응형