| pandas | scikit-learn(ML) + optuna | TF/PyoTorch |
|---|---|---|
| DF | DF/Array | Tensor(Array) |
를 이용하여 기획, 새로운 부분 시도
ex/ 국어, 영어, 수학, 과학 점수 처리
학생 전체는 list로, 개별 학생의 과목 정보는 dict로 할 때,
students = [ ]
여러개의 기능을 구조적으로 작성하여 직접 조작/설계 할 수 있음.
class Class :
#생성자 : 필요한 초기 속성 세팅.
def __init__( , , , ):
self.설정한 속성값 = 속성값 초기화
#필요한 기능 추가 : 함수
def fun(self):
summ = + + ..
return summ
.
.
.
ex/
class Studnet:
def __init__(self, name, kor, math, english, science):
self.name = name
self.korean = kor
self.math = math
self.english = english
self.science = science
def get_sum(self):
score_sum = self.korean + self.math + self.english + self.science
return score_sum
def get_avg(self):
scroe_avg = self.get_sum() /4
return scroe_avg
def to_string(self):
temp ="{0}\t{1}\t{2}".format(self.name,self.get_sum(),self.get_avg())
return temp
students =[
Studnet( "AAA", 98, 93, 79, 95),
Studnet( "BBB", 78, 87, 87, 90),
Studnet( "CCC", 90, 85, 89, 92),
Studnet( "DDD", 80, 96, 99, 93),
Studnet( "EEE", 70, 80, 89, 95),
]
students[0].name
# -> 'AAA'
students[0].get_avg()
# -> 91.25
print(students[0].to_string())
# -> 'AAA 365 91.25'
특별 메서드 : 기본 연산자를 클래스에 적용할 수 있게 기능 부여. 일반 연산자와 클래스 연결하면 됨.
students[0].get_sum() > students[3].get_sum()
-> False
클래스 안에 추가해도 됨.
def __eq__(self, value): # std1 == std2 , get_sum
return self.get_sum() == value.get_sum()
# 참고) 국어점수가 기준 : self.korean == value.korean
def __ne__(self, value): # std1 != std2, get_sum
return self.get_sum() != value.get_sum()
def __gt__(self, value): # std1 > std2, get_sum
return self.get_sum() > value.get_sum()
def __ge__(self, value): # std1 >= std2, get_sum
return self.get_sum() >= value.get_sum()
def __lt__(self, value): # std1 < std2, get_sum
return self.get_sum() < value.get_sum()
def __le__(self, value): # std1 <= std2, get_sum
return self.get_sum() <= value.get_sum()
클래스 내부의 속성값에 대한 외부접근을 막기 위해서는 속성값을 지정 .__
class Square:
def __init__(self, size):
self.__size = size
def get_area(self):
return self.__size * self.__size
def get_size(self):
return self.__size
def set_size(self, value):
self.__size = value
reference를 이용하여 다른 사람이 만들어둔 클래스를 활용해도 된다.