본문 바로가기

Python

(41)
[Pytorch] Linear Regression - 파이토치를 이용한 선형회귀분석 선형 회귀 분석이란? 통계학에서, 선형 회귀(線型回歸, 영어: linear regression)는 종속 변수 y와 한 개 이상의 독립 변수 (또는 설명 변수) X와의 선형 상관 관계를 모델링하는 회귀분석 기법이다. 한 개의 설명 변수에 기반한 경우에는 단순 선형 회귀, 둘 이상의 설명 변수에 기반한 경우에는 다중 선형 회귀라고 한다 - 위키백과 선형 회귀 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 독립변수 1개와 종속변수 1개를 가진 선형 회귀의 예 통계학에서, 선형 회귀(線型回歸, 영어: linear regression)는 종속 변수 y와 한 개 이상의 독립 변수 (또는 설명 ko.wikipedia.org 간단하게 말해서 주어진 X(데이터)을 가장 잘 표현할 수 있는 하나의 ..
[Python] Iterable & Iterator iter 함수 개발을 하다 보면 하나 이상의 값을 저장하고, 저장된 값들을 불러오는 일은 매우 흔하고 중요하다. Python에서는 다음과 같이 for loop을 기반으로 이러한 작업을 수행한다. numbers = [1, 2, 3, 4] for i in numbers: #numbers에 저장된 내용을 하나씩 출력 print(i, end = ' ') 위의 방법만으로도 대부분의 작업을 수행할 수 있지만, 조금 더 유연한 방법이 있다. numbers = [1, 2, 3, 4] ir = iter(numbers) #iterator 객체를 얻는 방법 print(next(ir)) # next(ir) : iterator 객체를 통해 값을 하나 가져옴(첫번째 값) print(next(ir)) # 두 번째 값 반환 후 출력..
[Python] Counter (단어 개수 세기) Counter Sequence Type의 Data element들의 개수를 dict 형태로 반환하는 객체 collections로 부터 import 하여 사용 from collections import Counter 컨테이너에 동일한 값이 몇 개있는지 쉽게 파악할 수 있다. from collections import Counter c = Counter() c = Counter('CocaCola') print(c) Dict type, keyword parameter 등 모두 처리 가능하다. dict를 이용하여 단어들의 개수를 지정하여 원하는 단어를 원하는 개수만큼 가지는 리스트를 생성할 수 있다. from collections import Counter d = {'red' : 4 , 'blue' : 2 } ..
[Python] Collections - defaultdict (단어 개수 세기) defaultdict Dict type의 값에 기본 값을 지정할 수 있는 dictionary 클래스 Dict의 신규 값 생성 시 유용한다. from collections import defaultdict 기존의 Dict d = dict() print(d['first']) 기본 dict를 사용하게 되면 key = 'first'인 item이 없기 때문에 출력하였을 때 에러가 발생한다. defaultdict 사용 from collections import defaultdict d = defaultdict(lambda : 0) #Default 값을 0으로 지정 print(d['first']) 하지만 defaultdict를 이용하여 기본 값을 0으로 지정하고 출력하였을 때 key = 'first'인 아이템을 추가..
[Python] Collections - OrderedDict OrderedDict 기본 딕셔너리와 거의 비슷하지만, 입력된 아이템들의 순서를 기억하는 Dictionary 클래스 즉 Dict와 달리, 데이터를 입력한 순서대로 dict를 반환함 collections로 부터 import 하여 사용 from collections import OrderedDict 기존 Dict 예시 d = {} d['Hello'] = 100 d['How'] = 200 d['are'] = 300 d['you'] = 500 print(d) v = {} v['How'] = 200 v['are'] = 300 v['you'] = 500 v['Hello'] = 100 print(v) if(d == v): print("두 Dictionary가 동일하다") 두 Dictionary의 입력 순서를 다르게 ..
[Python] Collections - deque Python Collections List, Tuple, Dict에 대한 Python Built-in 확장 자료 구조(모듈) 편의성, 실행 효율 등을 사용자에게 제공함 다음과 같은 모듈이 존재한다. from collections import deque from collections import Counter from collections import OrderedDict from collections import defaultdict from collections import namedtuple Deque Stack과 Queue를 지원하는 모듈 List에 비해 효율적인 자료 저장방식을 지원함 collections로 부터 import하여 사용 from collections import deque 기본적으로..
[Python] Lambda & Map & Reduce Lambda 함수 이름 없이, 함수처럼 쓸 수 있는 익명함수 수학의 람다 대수에서 유래함 Python 3부터는 권장하지는 않으나, 여전히 많이 사용됨. 간단한 함수들을 선언해서 사용하면 좋을 것 같다.(ex 함수의 제곱, 덧셈 반환 등..) Map function Sequence 자료형의 각 Element에 동일한 functon을 적용하는 함수 map(function_name, list_data) 첫 번째 인자는 적용할 함수, 두 번째 인자는 적용할 데이터이다. 위의 예제에서 기존의 데이터 [1,2,3,4,5]에 각 요소들을 제곱하는 람다 함수를 적용하여 모든 요소가 제곱된 새로운 리스트가 반환되었다. 위와 같이 Map()와 Lambda를 같이 사용하면 편리하게 기존의 데이터를 수정하여 구성할 수 있다...
[Python] Enumerate(), Zip() Enumerate List의 Element를 추출할 때 번호를 붙여서 추출할 수 있게 해주는 함수 List를 다룰 때 index번호가 필요한 경우 유용하게 사용할 수 있다. 위 코드에서 idx에 번호가, el에 리스트의 element가 저장되어 출력된다. 기존의 numbers 리스트의 요소를 index와 함께 묶은 list로 저장한다. 참고로 새로 생긴 list의 요소들의 type은 'tuple'이다. 다음과 같이 dict 자료형 또한 생성 가능하다. Zip 두 개의 list의 값을 병렬적으로 추출하는 함수 함수명 처럼 두 개의 list를 Zip해주는(묶어주는) 함수이다. 위의 예제에서 볼 수 있듯이 list1과 list2가 병렬적으로 a,b에 반환된다. 병렬적으로 라는 말은 두 리스트의 같은 index..
[Python] List comprehension - List comprehension이란 기존의 List를 사용하여 간단히 다른 List를 만드는 기법 포괄적인 List, 포함되는 List라는 의미로 사용 파이썬에서 가장 많이 사용되는 기법 중 하나 일반적으로 for + append 보다 속도가 빠르다 기존의 코드 스타일과 List Comprehension을 적용한 코드를 비교해보자. 위의 코드를 List comprehension을 이용한 코드로 변화하면 다음과 같다. List comprehension을 사용하면 코드도 짧고 속도도 빠르다. 중첩 Loop 또한 List comprehension으로 구현할 수 있다. 위의 코드는 case1에 해당하는 i loop 내부에 case2에 해당하는 j loop가 있다고 생각하면 된다. 따라서 i를 고정시키고, ..
[Python] Split(), Join() - Split() String Type의 값을 나눠서 List 형태로 변환하는 함수 즉, 문자열을 일정한 규칙으로 분리하여 리스트로 바꿔주는 함수이다. 리스트에 있는 값을 여러 개의 변수로 unpacking 하는 것 또한 가능하다. 이러한 split함수의 특징으로 도메인을 분리할 수도 있다. - Join() String List를 합쳐서 하나의 String으로 반환할 때 사용 즉, 리스트에 담겨있는 문자열들을 하나의 문자열로 바꿔주는 함수이다. 이러한 join함수의 특징으로 앞에서 분리한 Domain을 쉽게 합칠 수 있다. 이렇듯 split()과 join은 반대되는 느낌의 함수로 문자열을 손쉽게 분리하고 합치는 기능을 제공한다. 참고 https://www.edwith.org/aipython/joinLec..