728x90

IT/언어 133

[python] 클래스 메소드(@classmethod)와 스태틱 메소드(@staticmethod)

classmethod와 staticmethod란 classmethod 클래스 메소드는 아래와 같이 @classmethod를 클래스 함수에 붙이는 문법으로 사용할 뿐이다. 첫 번째 인수로 일반적으로 사용하는 self가 아닌, cls를 사용한다. class MyClass: CLASS_PARAM = 100 def __init__(self, instance_param): self.instance_param = instance_param @classmethod def method(cls): print(cls.CLASS_PARAM) # print(cls.instance_param)는 불가능하다. 함수 안에서는 인스턴스 변수로의 액세스는 안되지만, 클래스 변수에 액세스하는 것은 가능하다. 또한, 다른 클래스 메소드나..

IT/언어 2021.09.08

[python] matplotlib의 figure(그림)과 axes(좌표축)

여러 개의 그래프 여러 개의 그래프를 그릴 경우 figure과 axes이라는 개념을 사용해야한다. figure은 그림 전체, axes는 그 내부의 좌표축이다. 그림으로 본 다면 다음과 같다. figre-axes 실제로 그래프를 2개 그리는 경우를 예로 살펴보자. [경우1] figure을 1개 준비해서, 그 안에 axes를 2개 만드는 경우 [경우2] figure을 2개 준비해서, 그 안에 axes를 1개씩 만드는 경우 왼쪽이 [경우1]에 대한 그림, 오른쪽은 [경우2]에 대한 그림이다. 코드로 나타낸다면 다음과 같다. # [경우1] x = np.linspace(-3, 3, 20) y1 = x y2 = x ** 2 # figure는 1개 plt.figure(figsize=(3, 4)) plt.subplot..

IT/언어 2021.09.07

[python] assert문 간단 사용법

assert문이란? 조건문이 True가 아닐 경우, 예외를 일으킨다. 지금까지 잘 움직이던 코드이지만, 추가로 코드를 작성했을 때 예상하지 못한 다른 동작을 하게 될 경우 assert문을 작성해둠으로써 빠르게 이를 방지할 수 있다. 머신러닝이나 데이터 분석에서는 사양을 정해져 있지 않아 시행착오를 거쳐야할 부분이 많고, 일회성 대응도 꽤 있어, 테스트 코드를 작성하는 것이 낯선 경우가 많다. 이러한 경우 assert문을 작성하는 것을 추천한다. assert문은 Jupyter Notebook에서 사용하는 것이 제일 효과가 좋다고 개인적으로 생각한다. 또한, 데이터를 읽어 들인 직후에 데이터 체크하거나, 데이터의 결합이나 갱신 직후에, 중복이나 결손값(NA)을 확인할 때에 사용하는 것도 좋다고 생각한다. 사..

IT/언어 2021.09.01

[python/pandas] 특정 위치의 값을 획득하거나 바꿀 때 사용하는 loc, iloc, iat, at

pandas.DataFrame 임의의 위치 데이터를 획득하거나 변경(대입)하는 경우에 pandas.DataFrame의 속성인 loc, iloc, at, iat을 사용할 수 있다. 먼저 네 가지는 다음과 같은 차이점이 있다. loc iloc at iat 절대 좌표(위치) 지정 x o x o 라벨명 지정 o x o x 여러개의 요소 지정 o o x x 슬라이스 표기 o o x x 1) 좌표(위치)의 지정 방법 - at, loc : 행 명(행 라벨), 열 명(열 라벨) - iat, iloc : 행 번호, 열 번호(절대 좌표(위치)지정) 2) 선택하여 확인, 변경할 수 있는 데이터 - at, iat : 하나의 요소 값 - loc, iloc : 하나 혹은 여러 개의 요소 값 리스트, 슬라이스로 범위를 지정할 수 ..

IT/언어 2021.08.16

[python] matplotlib 사용법 기초

matplotlib는 figure이나 subplot등이 어떻게 움직이는지 알기 어렵다. 따라서 이번 포스팅을 통해 matplotlib의 구조에 대해서 간략하게 정리하고자 한다. 포스팅은 내용은 기본적으로 matplotlib.pyplot을 import된 상태라는 가정하에 설명하고 있다. import matplotlib.pyplot as plt plt.figure() plt.figure()이 맨 처음에 나오는 경우가 많다. figure()은 Figure인스턴스를 생성하는데 Figure인스턴스의 역할은 이미지 전체의 영역을 확보하는 것이다. 인수로 아래와 같은 항목을 지정할 수 있다. figsize : (width, height)의 튜플을 전달한다. 단위는 인치이다. dpi : 1인치당의 도트 수 faceco..

IT/언어 2021.08.09

[python] ArgumentParser 사용법

개요 Python의 실행시에 커맨드 라인 인수를 다룰 때, ArgumentParser(argparse)를 사용하면 편리하다. 다양한 형식으로 인수를 지정하는 것이 가능하다. 처음에 argparse를 사용할 생각으로 여러가지 포스팅을 살펴보았지만, 자세한 옵션까지 설명하고 있는 포스팅이 많아서 간단한 사용법을 알기 어려웠기 때문에 여기서는 간단하게 바로 시작할 수 있는 필요한 최소한의 내용에 대해 정리하고자 한다. ArgumentParser이란? 프로그램을 실행시에 커맨드 라인에 인수를 받아 처리를 간단히 할 수 있도록 하는 표준 라이브러리이다. ArgumentParser를 사용하면, $ python program.py test.txt --alpha 0.01 위와 같이, 프로그램에서 처리할 수 있는 파일명..

IT/언어 2021.08.02

[python] python으로 excel을 조작할 수 있는 openpyxl 사용법

excel 파일을 python으로 다룰 수 있는 openyxl 패키지에 대한 내용과 기본적인 사용법을 정리해보았다. 우선 OpenPyXL 문서는 여기서 확인이 가능하다. OpenPyXL이란 OpenPyXL은 Excel 파일을 읽고 쓰기를 Python으로 할 수 있는 일종의 모듈이다. 예를 들어 아래와 같은 조작이 가능하다. - 셀 번호를 지정해서 이미지나 문자열을 입력할 수 있다. - Excel 파일의 시트 데이터를 복사해서 다른 시트에 붙여넣기 할 수 있다. - 시트를 추가하거나 삭제할 수 있다. 다만 이 모듈을 사용하기 위해서 주의해야할 점이 한 가지가 있는데 바로 확장자가 ".xlsx"여야한다는 것이다. 이번 포스팅에서는 정말 기초적인 방법만 다루도록 하겠다. OpenPyXL 설치법 다른 패키지나 ..

IT/언어 2021.07.27

[python/pandas] DataFrame 합치기 : merge, join(열, 인덱스 기준)

날짜나 이름등 공통 데이터 열을 가지고 있는 여러 개의 pandas.DataFrame을 그 공통된 열을 기준으로 결합하기 위해서는 pandas.merge()함수 혹은 pandas.DataFrame의 merge()메소드를 사용한다. 인덱스 열을 기준으로 결합할 경우에는 pandas.merge()를 사용할 수 있고, pandas.DataFrame의 join()메소드도 사용할 수 있다. 이 포스팅에서는 아래의 내용에 대해 설명하고자한다. pd.merge(), pd.DataFrame.merge()의 기본적인 사용법 키가 되는 열을 지정: 인수on, left_on, right_on 결합 방법을 지정: 인수how inner_join: how='inner' left_join: how='left' right_join:..

IT/언어 2021.07.13

[python] python으로 csv파일 읽어들이기

python으로 csv파일을 읽어들이는 방법과 다루는 방법에 대해 간단하게 소개하고자 한다. csv 먼저 python의 표준 라이브러리의 csv를 사용해보자. 읽어들이기 csv를 사용하여 csv파일을 읽어 들일 수 있다. import csv csv_file = open("./TEST_STOCK.csv", "r", encoding="ms932", errors="", newline="" ) #리스트 형식 f = csv.reader(csv_file, delimiter=",", doublequote=True, lineterminator="\r\n", quotechar='"', skipinitialspace=True) #사전형 형식 f = csv.DictReader(csv_file, delimiter=",", d..

IT/언어 2021.07.08

[python] 다중상속

다중상속이란? "다중상속"이란 "여러 개의 클래스로부터 기능을 상속받는 것"을 의미한다. 예를 들어, "A클래스와 B클래스를 바탕으로 C클래스를 만든다"는 것이라고 할 수 있다. 참고로 "A클래스로부터 B클래스를 파생시켜, 다시 B클래스로부터 C클래스를 파생시키는 것"은 상속(단일 상속)의 연쇄일뿐이므로, 다중상속이라고 할 수 없다. 다양한 이유로 인해 최근의 프로그래밍언어에서는 다중상속을 크게 지원하지 않지만, Python은 다중상속을 지원하고 있다. 다중상속을 구현하기 위해서는 클래스를 정의하고 기초가 되는 클래스를 여러 개 작성할 뿐이므로 작성법 자체는 어렵지 않다. 아래를 코드를 예로 살펴보도록 하겠다. class A: def hello(self): print('Hello from A') clas..

IT/언어 2021.05.28
728x90