본문 바로가기

python27

5. python, @method 파이썬에서는 @으로 여러 설정을 지정해 줄 수 있습니다. ex) @staticmethod # 정적 메서드 # 정적 메서드는 self 필요하지 않음 정적 메서드 사용시, 그 함수는 self가 필요하지 않습니다. 이는 굳이 class를 따로 만들 필요 없이 함수만 사용하고 싶은 경우 만들게 됩니다. 실제로 클래스 안에 들어갈 필요는 없지만, 로직 상 class안에 있어야 하는 경우, 주로 사용됩니다. @classmethod def printCount(cls): print(cls.count) @classmethod를 붙인 함수는 마찬가지로 클래스를 만들 필요 없이 사용 가능하며, 클래스 변수를 알고 싶을 경우 주로 이용됩니다. 2021. 1. 13.
4. python, zip 두 개 이상의 list를 같이 출력하고 싶을 때는, zip함수를 사용하면 코드 개수도 줄어들고, 속도도 빠른 프로그램을 만들 수 있습니다. ex) list1 = list(range(10, 100)) list2 = list(range(20, 110)) for i in range(len(list1)): print(list1[i], list2[i]) # zip 사용하지 않고 for문으로 print 이러면 코드의 길이도 길어지며, for문을 사용하게 되어 실행 시간이 길어집니다. list1 = list(range(10, 100)) list2 = list(range(20, 110)) result = zip(list1, list2) print(list(result)) # zip을 활용함 반대로 zip을 활용하면, .. 2021. 1. 13.
3. python, enumerate 활용하기 list와 관련된 for문 중 반복되는 횟수를 알고 싶을 경우, enumerate 함수를 활용하면 됩니다. enumerate 함수는 빠르다는 강력한 장점이 있습니다. ex) list1 = list(range(10, 100)) for i in range(len(list1)): print(i, list1[i]) # enumerate를 활용하지 않는 경우 위와 같은 경우는 enumerate를 활용하지 않는 경우이며, 속도가 느리다는 단점이 있습니다. list1 = list(range(10, 100)) for idx, i in enumerate(list1): print(idx, i) # enumerate를 활용한 경우 enumerate를 활용할 경우, 코드도 짧아지고 실행 속도도 빨라집니다. 2021. 1. 13.
2. Python에서 List Comprehension 일반적으로 사용하는 for문은 속도가 느리고 비효율적입니다. 그 이유는 C스타일이기 때문이며, 파이썬과는 살짝 맞지 않는 구석이 있습니다. 따라서 List Comprehension을 자주 활용하는 것이 좋습니다. ex) num = list(range(10)) result = [] for i in num: result.append(i) print(result) # for문 활용함 이렇게 for문을 활용하는 것 보다는, num = list(range(10)) result = [i for i in num] print(result) # List Comprehension 활용 List Comprehension을 활용하는 것이 코드도 짧아지며, 속도가 더 빠릅니다. 이를 활용하면 구구단 리스트도 간단하게 만들어 볼.. 2021. 1. 13.
1. python 작은 팁 모음! (추가 예정) 개요 이 게시물에서는 python에서 활용할 수 있는 작은 팁들을 모을 것입니다. 비중있게 다룰 팁은 게시물을 별도로 작성할 것이며, 사소한 팁은 이 게시물에 작성할 것입니다. 팁 모음 1. 파이썬에서 내가 생각하는 것은 누군가가 다 해놓았다! 2. ctrl + / 로 주석 처리 가능 3. +, -, = 등은 대부분 띄어서 표기, *와 /, 괄호, 괄호 안의 내용은 띄어쓰기 안하는 것을 권장 4. 파이썬에서는 while문 보다는 for문이 더 빠름 5. for문 다음에 else문이 나올 수도 있음 6. python에서는 입출력 방식을 빠르게 하기 위한 방법이 있다 input 대신 sys.stdin.readline() 사용하면 더 빨라지며, 이때는 맨 끝 개행문자까지 입력받기 때문에, rstrip()을 추.. 2021. 1. 13.
4.머신러닝의 종류, 강화학습(Reinforcement Learning) 개요 머신러닝을 크게 3가지로 나누었을 때, 그 마지막 순서인 강화학습(Reinforcement Learning)에 대해서 알아보겠습니다. 목차 1. 강화학습(Reinforcement Learning), 상태(State), 행동(Action), 보상(Reward) 2. 강화학습 알고리즘 1. 강화학습, 상태, 행동, 보상 강화학습(Reinforcement Learning)은 머신이 임의적으로 주어진 환경 속에서 행동해야 하는 수칙을 학습시키는 것이라고 할 수 있습니다. 이런 강화학습의 궁극적인 목표는 환경과 상호작용할 수 있는 Agent를 학습시키는 것 입니다. 이 Agent는 여러 특정 상활들이라 불리는 상태(State)에 맞닿았을 때, 여러가지 행동할 수 있는 행동(Action)을 취하면서 학습해 나.. 2021. 1. 7.
3. 머신러닝의 종류, 비지도학습(Unsupervised Learning) 개요 머신러닝의 종류 중 비지도학습이 존재합니다. 이번 개시물에서는 비지도학습이 무엇인지 간략하게 알아보고, 알고리즘의 몇몇 종류에 대해서 알아보겠습니다. 목차 1. 비지도학습(Unsupervised Learning) 1-1. 클러스터링(Clustering) 1-2. 데이터 압축(Dimensionality reduction) 1. 비지도학습(Unsupervised Learning) 비지도학습(Unsupervised Learning)은 라벨화 되어있지 않는 데이터들을 여러 특징에 의해 군집화 하는 것으로, 여러 종류가 있으며 그중에 비슷한 연관성을 지닌 것들 끼리 묶어서 나타내는 것을 클러스터링(Clustering)이라고 하며, 다차원의 데이터를 저차원의 데이터로 축소하는 데이터 압축(Dimensional.. 2021. 1. 7.
2. 머신러닝의 종류, 지도학습(Supervised Learning) 개요 머신러닝은 크게 지도학습, 비지도학습, 강화학습으로 나눌 수 있습니다. 이번 게시물에서는 지도학습에 대해, 다음 게시물에서는 비지도학습, 강화학습을 차례대로 확인해 볼 것 입니다. 목차 1. 지도학습(Supervised Learning) 1-1. 데이터 분류(Classification) 1-2. 회귀(Regression) 1. 지도학습(Supervised Learning) 각각의 머신러닝의 종류마다 구현할 수 있는 다양한 알고리즘들이 있습니다. 우선 지도학습(Supervised Learning)은 크게 데이터 분류(Classification)과 회귀(Regression)으로 나눌 수 있습니다. 1-1. 데이터 분류(Classification) 분류(Classification)는 데이터를 특정한 라벨.. 2021. 1. 7.