728x90

Programming Language/Python 9

Garbage Collection in Python, 파이썬의 GC에 대해

Python에서의 GC 파이썬은 기본적으로 레퍼런스 카운팅(Reference Counting)을 바탕으로 GC를 수행하고 메모리를 관리한다. 레퍼런스 카운팅(Reference Counting)? 모든 객체는 참조 당할 때 이 레퍼런스 카운트를 증가시키고, 참조가 없어지면 이를 감소시킨다. 이 값이 0이 되면 객체가 메모리에서 해제된다. 해당 객체의 레퍼런스 카운트 값을 확인하는 코드는 다음과 같다. sys.getrefcount(obj) GC의 동작 원리 앞서 언급한 것처럼 GC는 레퍼런스 카운트를 기준으로 진행하는데, 좀 더 정확히 다루자면 세대와 그에 따른 임계값을 바탕으로 주기적으로 관리한다. 여기서 말하는 세대는 숫자가 클수록 오래된 객체이며, GC는 기본적으로 0세대, 즉, 비교적 최근에 생성된 ..

M1 맥북에서 파이썬 개발환경(아나콘다, 파이참) 설치하기

M1 실리콘 맥에서 파이썬 개발 환경을 설치해보자. 파이썬 개발 환경이라고 하면 대표적으로 사용하는 것이 아나콘다(Anaconda)와 파이참(Pycharm)일 것이다. 이 두 가지는 윈도우, 맥을 가리지 않고 사용하는 보편적인 툴이다. 아나콘다(Anaconda3) 설치하기 Anaconda | Individual Edition Anaconda's open-source Individual Edition is the easiest way to perform Python/R data science and machine learning on a single machine. www.anaconda.com 설치 순서는 상관 없지만, 먼저 아나콘다부터 설치해보도록 하자. M1 출시 초기에는 아나콘다 활용이 불가능하다는..

Jupyter-Notebook PDF 저장 시 오류 nbconvert failed: xelatex not found on PATH 문제 해결 방법

과제 제출 과정에서 Jupyter Notebook 실행 결과를 PDF로 제출해야 했다. Jupyter Notebook에서 바로 LaTex를 이용해서 PDF로 저장을 눌렀더니 에러와 함께 아래 문구가 나왔다. nbconvert failed: xelatex not found on PATH 이 문제 해결 방법은 간단하다 에러 문구와 함께 같이 뜨는 사이트로 이동해서 MiKTeX를 설치해주면 그만이다. 각 환경에 맞는 프로그램을 사용해 설치만 진행하면 PDF 저장이 가능해진다. https://miktex.org/download Getting MiKTeX - MiKTeX.org The MiKTeX Setup Utility is used to download, install and uninstall MiKTeX u..

판다스(Pandas) shift를 활용해서 Sliding Window 만들기

시계열 데이터를 활용해서 수치를 예측하는 모델을 만들 때 사용하는 다양한 방법 중에 Sliding Window를 활용해 과거 데이터를 feature로 사용하는 방법이 있다. 이 방법은 시계열 데이터를 활용한 예측에서 과거 데이터들을 바탕으로 예측을 수행하므로 과거 데이터들을 포함하는 feature를 만들어줘야 한다. 이렇게 feature로 사용할 과거 기간에 대해서 lookBack, lag, delay 등 다양한 명칭으로 부르는데, 통상적으로 lag이라는 명칭을 많이 사용하는 것 같다. 예시 코드에서는 lookBack으로 작성했다. 다양한 방법으로 lag을 줘서 Sliding Window를 만들 수 있지만, 손수 Sliding Window와 lag 개념을 넣으려면 거기에 맞게 행을 추가해줘야 하고, 데이..

파이썬(Python) 간략 정리

파이썬(Python)은 귀도 반 로섬에 의해서 1991년에 나온 인터프리터 언어로, 이 역시 심심할 때 만들어져서 나온 공돌이들의 걸작 중 하나로 분류된다. 파이썬(Python)은 크게 두 버전, Python 2(2000), Python 3(2008)로 분류하며, 두 버전 간 호환되지 않는 부분이 너무 많았던 적이 있었다. 결론적으로 파이썬 2는 2.7 이후로 더 이상 발전할 일이 없고 3에 초점을 맞춰 개선되고 있기 때문에 파이썬 3에 맞춰 공부하는 것이 좋다. 파이썬은 개발자들 사이에서는 생산성과 개발 속도에서 매력이 있는 언어로, 교육 기관에서는 초보자들이 입문하기 쉬운 언어로 분류되는 추세다. 국외 대학에서는 이미 프로그래밍 입문 언어로 파이썬을 선택했고, 국내 대학도(필자가 재학 중인 학교의 학..

Python] 문자열 정의

###Python 문자열 정의 - 문자열 내에 '를 사용할 경우,""를 이용해 문자열을 정의하면 이용 가능\'을 이용하면 ''를 이용해 문자열을 정의 가능str = 'Don\t move "RUN"' - \는 다음 라인이 현재 라인의 뒤에 이어짐을 나타냄long_str = "This is a rather long string \containing back slash and new line." - 여러 줄의 문자열 정의multiline = """ While the rest of the world has been catching on tothe Perl scripting language, the Linux community,long since past ...has been catching on to a """..

Python] 연산자

###연산자 ##산술연산자 - 단항연산자, 지수연산자, (곱하기, 나누기, 나머지, 몫), (더하기, 빼기)의 우선순위- 곱하기, 나누기, 나머지, 몫 : *, /, %, //로 결합순서가 좌에서 우- 지수 연산자 : **(2**3=8)로 결합순서가 우에서 좌- 더하기, 빼기 : +, -로 결합순서가 좌에서 우- print divmod(a,b) = (a/b, a%b) ##관계연산자 - 객체가 지는 값의 크기를 비교하여 True, False 반환a==b, a!=b, a>b, a실제 코드 개발 시 연산자 우선순위에 많은 의존 없이 괄호를 적절히 사용해 코드의 가독성을 높이는 것이 좋다.

Python] 클래스 기초

파이썬에서 클래스의 기본 선언 구조 123456class Example: def __init__(self,param): def function(param): class classExample(Example): def func(param):cs 클래스는 예약어 class 뒤에 클래스명을 지정해 선언함 class Example: 생성자는 __init__() 함수로, 클래스 생성 시 호출되며,생성자는 클래스 자신을 가리키는 인자 self가 반드시 들어가야 함.특별한 초기화 작업이 필요 없는 경우 생략 가능. def __init__(self, param): 클래스 내부에는 함수 선언 가능. def function(param): 다른 클래스를 상속하려면 클래스 선언 시, 인자로 상속받을 클래스명을 넣어줌. cla..

Python] 파이썬 문자열 메소드

###Python 문자열 메소드 s = 'i like programming.' s.upper() # 모두 대문자로s.lower() # 모두 소문자로s.swapcase() # 대문자는 소문자, 소문자는 대문자s.capitalize() # 첫 문자를 대문자로s.title() # 각 단어의 첫 문자를 대문자로 s.count('like') # 'like' 문자열이 출현한 횟수 반환s.find('like') # 'like' 첫 글자의 위치(offset)을 반환s.find('like',3) # offset=3 부터 'like'를 검색해 첫 글자의 위치 반환 - find의 경우 단어가 없을 경우 -1 반환 s.startswith('i like') # 'i like'로 시작하는 문자열인지 판단s.endswith('sw..

728x90