본문 바로가기

반응형
SMALL

Python

(12)
Pandas Pandas Numpy 기반으로 개발된 데이터 분석도구이며, pandas는 주로 Series보다 DataFrame을 많이 쓴다. 리스트 형식으로 생성할 수도 있지만 dictionary로부터 생성할 수도 있다. import pandas as pd # pandas.Series는 1차원 데이터를 다루는 데 효과적이다. print(pd.Series([1,2,3,4])) # 0 1 # 1 2 # 2 3 # 3 4 # dtype: int64 # pandas.DataFrame은 2차원 데이터를 다루는데 유용하다. # 리스트 형식 print(pd.DataFrame([[1,2,3,4],[5,6,7,8]], columns=['co1','co2','co3','co4'])) # co1 co2 co3 co4 # 0 1 2 3 ..
Numpy Numpy C를 기반으로 작성된 라이브러리로 Numerical Python의 줄임말이다. 파이썬에서 과학적 계산을 위한 핵심 라이브러리로 다차원 배열 객체와 이들의 계산을 위한 다양한 도구들을 제공한다. import numpy as np와 같은 방식으로 많이 호출한다. 배열 : 다차원 배열객체 np에서의 각 위치의 자료는 모두 같은 자료형이어야 한다. np.array(컬렉션) 을 통해 생성할 수 있다. .dtype을 통해 각 데이터의 자료형을 알 수 있다. numpy에서 사용되는 자료형 부호가 있는 정수 int(8, 16, 32, 64) 부호가 없는 정수 uint(8 ,16, 32, 54) 실수 float(16, 32, 64, 128) bool 문자열 string 파이썬 오프젝트 object 유니코드 u..
병렬처리(프로세스와 쓰레드), Process와 Pool의 차이 병렬처리(프로세스와 쓰레드) 프로세스 : 실행 중인 프로그램으로 자원과 쓰레드로 구성한다. 쓰레드 : 프로세스 내에서 실제 작업을 수행한다. 파이썬은 인터프리터 언어로서 기본적으로 싱글 쓰레드에서 순차적으로 동작한다. 따라서 병렬처리를 위해선 별도의 모듈을 사용하여 수행해야 한다. from threading import Thread import time def work(work_id, start, end, result): total = 0 for i in range(start, end): total += i result.append(total) if __name__ == "__main__": # 현제 페이지에서만 작동하도록 한다. start = time.time() # 현재시간을 초단위로 보여준다. re..
추상 클래스, isinstance, assert 문, __call__, 파일처리, with ~ as 문, 직렬화, 디렉토리(폴더) 생성 추상 클래스 추상 클래스는 abc 모듈의 ABCMeta 클래스를 상속받아 만든다.(abc는 추상 클래스를 정의할 때 사용하는 모듈이다.) 추상 클래스는 이를 상속받은 자식 클래스가 부모 클래스의 특정 메서드를 구현하도록 강제하는 클래스이다. 추상 메소드라는 @abstractmethod 데코레이터를 사용하여 자신의 하위객체에게 특정 메소드의 생성을 강제할 수 있다. 추상 클래스는 자신의 객체를 생성할 수 없다. 추상 메소드는 이름만 존재하고 내용은 없다. 추상 클래스는 abc 모듈의 ABCMeta 클래스를 상속받아 만든다. 이때 반드시 metaclass=메타클래스이름 의 형태로 상속받는다. metaclass는 클래스를 제어하는 클래스로, 여기서는 Abstract 클래스를 ABCMeta 클래스로 제어하고자 ..
classmethod와 private 변수 classmethod # 정적 메소드와 유사하지만, 첫 번째 변수로 클래스 객체가 전달되는 것이 다르다. # cls 매개변수 사용 # @classmethod 데코레이터로 수식 class student: count=0 @classmethod def cmethod(cls): # 첫 번째 변수로 클래스 객체가 전달 print("클래스 메소드") print(cls.count) # 0 @staticmethod def smethod(): print("정적 메소드") student.cmethod() student.smethod() # 클래스 메소드 # 0 # 정적 메소드 private 변수 # getter를 통해 값을 불러 온다. # setter를 통해 값을 바꿀 수 있다. class human: def __init..
조금 더 알아보는 python 함수 *, **의 차이 # 함수 안에서 사용할 때 *, **은 입력값이 몇 개가 될 지 모를 때 사용한다. def printer(*var): # * 하나는 튜플 형태로 출력된다. return var ret = printer(1,2,3,4) print(ret) # (1, 2, 3, 4) def func(**args): # ** 둘은 딕셔너리 형태로 출력된다. return args result = func(k1=1, k2=2) # 딕셔너리이기 때문에 이와 같은 형태로 매개변수 이름을 지정해 주어야 한다. print(result) # {'k1': 1, 'k2': 2} # addition(a=3, 2)와 같은 표현은 불가능하다. 변경하려면 변경값을 뒤에 넣어야 한다. def add(a=1, b=3): return a..
논리연산 더 알아보기, 인스턴스, 클래스, 메소드, 상속, super(), 예외 만들기 논리연산(단락평가) 복잡한 코드를 단순하게 하여 논리연산에서 코드의 앞만 보고 값을 정할 수 있는 경우 뒤는 확인하지 않고 값을 결정한다. # 첫 번째 값이 거짓이므로 두 번째 값은 확인하지 않고 거짓으로 결정한다. print(False and True) # False print(False and False) # False # 첫 번째 값이 참이므로 두 번째 값은 확인하지 않고 참으로 결정한다. print(True or True) # True print(True or False) # True # 논리 연산이 '문자열' and '불린'로 되어있는 경우를 보면, # and 앞의 '문자열'이므로 and 뒤의 불린값에 따라 논리 연산이 결정된다. 'Python' and True # True 'Python' an..
날짜와 시간(datetime, timedelta), 예외 처리(try except, raise) datetime 날짜와 시간을 사용하게 해주는 라이브러리이다. import datetime christmas_2022 =datetime.datetime(2022, 12, 25) print(christmas_2022) # 2022-12-25 00:00:00 # 오늘부터 2030년 12월 25일 사이에 몇일이 있는지를 리턴 # 시간단위는 고려하지 않는다. import datetime def days_until_christmas(): christmas_2030 = datetime.datetime(2030, 12, 25) days = christmas_2030 - datetime.datetime.now() # christmas_2030 빼기 현재날짜 및 시간이다. return days.days # days만 출..

반응형
LIST