본문 바로가기

전체 글

(142)
[파이썬] 제너레이터(Generator) 이해하기 decorator 제너레이터(Generator) 1. 기존 방식 ######################################### 기본 예제 def square_numbers(nums): result = [] for i in nums: result.append(i*i) return result my_nums = square_numbers([1,2,3,4,5])print(my_nums)print(type(my_nums)) >>> 출력결과> [1, 4, 9, 16, 25]> >######################################### 제너레이터로 만들기 def square_numbers(nums): for i in nums: yield i * i my_nums = square_num..
[파이썬] 데코레이터(Decorator) 이해하기 decorator 데커레이터(Decorator) 사전 개념 데커레이터를 이해하기 위해서는 아래와 같은 3가지 개념이 사전에 필요하다. 가장 간단하게 설명하면 일급 객체 함수 내에 함수를 정의할 수 있다 함수를 인자로 전달할 수 있다. 클로저 내부(inner) 함수가 외부(outer) 함수의 인자를 기억하고 있는 것 *args(위치 인자)와 **kwargs(키워드 인자) *args(위치인자) : 인자가 순서가 있음 ## 위치 인자 def sum(*args): sum = 0 for i in args: sum += i return sum print(sum(5,3,1,2)) ## 키워드 인자 def print_kwargs(**kwargs):print("키워드인자를 출력 : ", kwargs) # print_kw..
[파이썬] 클로져(Closure) 이해하기 클로저(Closure) 함수 내부함수 클로저(Closure) 함수를 배우기 전에, 내부 함수에 대해 먼저 알아야 한다. 일급 객체 의 특징중에서 함수 내에 함수를 정의 할 수 있다고 했다. 이를 내부 함수(inner function)이라고 한다. def outer_fucntion(a, b): def inner_function(c, d): return c + d return inner(a, b) print(outer_function(3, 5)) >>> 출력결과> 8 심화하기 : 내부 함수(inner function)은 루프나 코드 중복을 피하기 위해 또 다른 함수 내에 어떤 복잡한 작업을 한 번 이상 수행할 때 유용하게 사용한다. 클로저(closure) 1부 : 개념 익히기 위에서 간단하게 내부 함수가 무..
[파이썬] 일등 함수(first-class citizen) 이란? 일등함수 함수는 일등 시민(first-class citizen) 일등 시민(first-class citizen)이라고? 정말 생소한 개념이다. 익숙하진 않지만, 다음 조건을 충족한다면 일등 시민이라고 할 수 있다. 변수나 데이터에 할당 할 수 있어야 한다. 객체의 인자로 넘길 수 있어야 한다. 객체의 리턴값으로 리턴 할 수 있어야 한다. 위키백과 : 일급 객체란? 엥? 그거 다 되는거 아니야? 싶겠지만 파이썬에서는 독특하게도 함수도 위와 같은 기능을 수행한다. 이러한 특징을 가진 일급 객체(first-class citizen)를 사용하면 손쉽게 함수를 재활용 할 수 있다. 예제참고 블로그 1. 함수를 변수에 할당 가능 def square(x) : return x * x f1 = square_numbers..
[파이썬] 리스트 컴프리헨션(list comprehension)의 이해 0. 들어가기 앞서 행(row)을 만나기 위해서는 matrix의 괄호를 한 번 벗겨야 한다. 행의 원소(element)들을 만나기 위해서는 matrix의 괄호를 두 번 벗겨야 한다. 한 번 벗기기 위해서는 for문을 한 번만 사용하면 되고 두 번 벗기기 위해서는 for문을 두 번 사용하면 된다. 1. row 내의 element 접근하기 리스트 컴프리헨션은 여러 가지 표현식이 있어서 더 어려운 듯 하다. 여기서 element란 하나하나의 원소를 의미한다고 정의하자. 간단하게 표현하면(?) 위와 같이 얘기할 수 있다. for문은 →로 진행되며, 괄호를 한꺼풀식 벗긴다고 생각하면 된다. 그래서 첫번째 for문에서 원 데이터(matrix)가 가장 먼저 등장하게 되며 한꺼풀식 벗긴 데이터를 또 한꺼풀 벗긴다고 생..
[파이썬] 행렬(matrix)과 리스트 컴프리헨션(list comprehension) 이해하기 0. 들어가기 앞서이번 포스팅에서는 행렬(matrix)에서 리스트 컴프리헨션(list comprehension)을 이용해 행과 열을 뽑아내도록 하겠다.여러 시행착오를 거치면서 삽질했던거라 까먹지 않기 위해 포스팅한다. 아주 얕은 깊이의 내용만을 다루며 많은 오류가 예상된다.포스팅에 오류가 있다면 적극적으로 말씀해주세요! 1. 행렬 표현식 이해하기 행렬에 대해 공부할 때 가장 헷갈리는 게 행(row)과 열(col)이라는 용어를 이해하는 것이다. 행은 가로줄을 의미하고, 열은 세로줄을 의미한다.나는 행과 열을 이해하는 데 힘들었다. 아무튼 힘들었다. 2. 행렬의 행(row)과 열(column) 이해하기행렬은 위 그림처럼 표현할 수 있다행(row) 한 줄은 괄호 하나를 벗기면 되고,행(row) 한 줄에 속해있..
[R] 시계열 그래프 그리기 1. 시계열그림(time-series plot) 시계열 그림은 시간에 따른 자료의 변화나 추세를 파악하는 데 적절하다. 위 그림은 5월 대선 후보자들의 1달 검색량 추이를 보여주는 구글 트렌드(Google Trend)이다. 2. 시계열 그래프 그리기(ggplot2 라이브러리 이용) 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 13 9 32 38 54 36 39 47 56 14 30 41 30 8 16 5 15 21 13 32 26 27 (출처 : 위키디피아)위 표는 야구선수 이승엽의 홈런 개수다. 이를 이용해 시계열 그래프를 그려보도록 하자. 2-1 데이..
[통계+R] 카이제곱검정 [초급] 1. 먼저, 범주형(category) 변수가 무엇인지 이해할 필요가 있다. 나도 처음에 이해하기가 힘들었다. 용어들에 대해서 익숙해지려면 반복해서 자꾸자꾸 봐야하는 듯 하다. 2. 범주는 우리 주위에서 쉽게 살펴볼 수 있다. 온라인 서점을 들어가보면 우리가 흔히 말하는 책의 '카테고리'들이 있다.이 카테고리에 값을 줘서 평균을 낸다고 의미가 있을까? 3. 연속형 변수는 '172.1cm, 169.7cm, 183.0cm' 처럼 수치로 부여된다. 범주형 변수는 '빈도(도수, Frequency)'의 형태로 주어지는 것이 대부분이다. 남 여 도수 72명 48명 4. 그러면 범주형 자료를 분석할 수 있는 기법들은 어떤 것들이 있을까? [중급] 범주형 변수에서 주는 거라곤 꼴랑 '빈도'뿐인데, 우리는 어떤 ..