본문 바로가기

전체 글

(27)
파이썬 내장함수 파이썬에는 다양한 내장한수들이 존재한다. 이번 포스팅에서는 글쓴이가 연구를 하면서 자주 사용하는 몇가지 함수에 대해서 작성하려 한다. 추가적인 내장함수를 찾아보려면 https://docs.python.org/ko/3/library/functions.html#slice 를 참고바람. 1. abs( ) : 숫자의 절대값을 반환하는 함수이며, 인자로 숫자를 받음. a = -10 b = 10 print('a와 b의 합은',a+b,'입니다.') print('a의 절대값과 b의 합은', abs(a) + b,'입니다.') 코드 실행 결과 a와 b의 합은 0 입니다. a의 절대값과 b의 합은 20 입니다. 2. all(iterable) : iterable의 모든 요소가 참이면 True를 반환 a = [True, Tru..
딕셔너리(Dictionary) 사용법 정리 지난번 포스팅에서는 리스트(list)에 대한 내용을 정리했다. 이번 포스팅에서는 딕셔너리(Dictionary)에 대한 기본적인 내용을 정리해보려고 한다. 딕셔너리는 사전처럼 key와 value로 이루어져 있으며, list처럼 순서가 있지는 않다. 딕셔너리와 관련된 내장함수와 관련 코드를 보면 쉽게 이해할 수 있을 것이다. 1. 딕셔너리에 내용 추가하기 day1 = ['월', '화', '수', '목', '금', '토', '일'] day2 = ['mon', 'tue', 'wed', 'thu', 'fir', 'sat', 'sun'] dic = {} # 비어있는 딕셔너리를 정의 for i,k in enumerate(day1): #enumerate하면 index와 component가 반환 tmp = day2[i]..
파이썬 리스트(list) 사용법 정리 이번 포스팅에서는 파이썬의 가장 기본이 되는 리스트에 관한 사용법을 정리해보려고 한다. 본인의 경우, 수리모델을 코딩할 때 numpy와 더불이 많이 사용한다. 그래서 이번 기회에 전체적으로 한번 정리하는 의미에서 포스팅을 작성해보려고 한다. 1. Index() : 리스트의 특정 요소의 위치를 반환하는 파이썬의 내장함수 week = ['월', '화', '수', '목', '금', '토', '일', '수'] # week라는 리스트를 정의 component = '수' # component를 week 리스트의 요소 중 하나인 '수'로 정의 position = week.index(component) # 리스트 week에서 '수'의 index를 반환 (이때, 찾는 범위는 전 범위) print('%s요일은 일주일 중 ..
파이썬 networkx(graph 노드 위치 설정) 지난 포스팅에서는 networkx에서 네트워크에 edge와 node를 추가하는 것을 작성했다. 이번 포스팅에서는 그래프를 구성하는 노드들의 위치를 설정하는 방법을 작성해보려고 한다. 아래코드는 지난번 포스팅에서 작성했던 코드로, 코드를 실행할때마다 노드들의 위치가 계속해서 변경된다. g1 = nx.Graph() # 무방향성 그래프 g1을 생성 g1.add_nodes_from([1,2,3,4,5]) # 생성한 g1그래프에 노드 1을 생성(추가) g1.add_edges_from([(1,2), (2,3), (1,5), (3,5), (4,5)]) # 생성한 g1그래프에 edge를 생성(추가) g1.add_edge(1,3, weight=3) # node1,3을 연결하는 edge의 weight를 3으로 설정 g1...
파이썬 Networkx (node와 edge 제거) 지난번 포스팅에서는 Networkx의 가장 기본적인 node와 edge생성하는 방법을 작성했다. 먼저 지난 포스팅에서 작성한 파이썬 코드는 아래와 같으며, 코드를 jupyter notebook에 입력해서 실행하면 아래 와 같은 그래프가 생성된다. 은 예제일뿐, 코드를 실행시킬때마다 다른 그림이 나올 것이다. Import networkx as nx g1 = nx.Graph() # 무방향성 그래프 g1을 생성 g2 = nx.DiGraph() # 방향성 그래프 g2를 생성 g1.add_node(1) # 생성한 g1그래프에 노드 1을 생성(추가) g1.add_node("a") # 생성한 g1그래프에 노드 "a"를 생성(추가) g1.add_nodes_from( [2, 7, 3] ) # 생성한 그래프에 노드 2, ..
파이썬 Networkx (node, edge 생성) Networkx는 파이썬 라이브러리 중 하나로 네트워크를 그리는데 유용한 라이브러리이다. 이번 포스팅에서는 필자가 연구를 하면서 Networkx 라이브러리를 활용했던것을 정리할 것이다. 천천히 포스팅을 읽어보면 쉽게 이해할 수 있을 것이다. 1. Library import 방법 Import networkx as nx Jupyter notebook에 위의 문장을 넣으면 networkx를 사용할 수 있다. 2. Graph 생성 g1 = nx.Graph() g2 = nx.DiGraph() 위의 문장은 무방향성 그래프 g1과 방향성 그래프 g2를 정의하는 문장이다. 물론 다 아시겠지만 여기서 g1, g2는 사용자가 원하는 이름으로 바꿀 수 있다. 아래의 예제에서는 무방향성 그래프 g1을 기준으로 작성하겠다. 3..
Expectation of a random variable 지난번 포스팅에서는 연속 확률변수(Continuous random variable)에 대해서 작성했었다. 이번 포스팅에서는 확률 변수들의 기대값(Expected value)에 대해서 작성하려고 한다. 1. 이산 확률변수의 기대값 만약 확률변수 X가 확률 질량함수 $p(x)$를 가진다면, 이때 확률변수 X의 기대값(Expected value)는 아래와 같다. $$ E(x) = \sum_{x:p(x)>0} xp(x) $$ 몇가지 예제를 통해서 기대값에 대해 알아보자. Q1) 확률변수 X가 모든면이 나올 확률이 동일한 주사위를 1번 던졌을때, 나올 수 있는 수라고 할 때, X의 기대값을 구하시오. Sol1) $p(1) = p(2) = \cdots = p(6) = \frac{1}{6}$이기 때문에 확률변수 X의..
Continuous random variable(2) - exponential, gamma, normal 지난번 포스팅에서는 연속 확률변수와 그 중 하나인 Uniform random variable에 대해서 알아보았다. 이번 포스팅에서는 연속 확률변수 중 exponential, gamma, normal random variable에 대해서 작성해보겠다. 1. Exponential random variable 어떤 임의의 $\lambda > 0 $에 대해서 아래와 같은 확률 밀도함수(pdf)를 가지는 연속 확률변수를 파라미터가 $ \lambda$인 exponential random variable이라고 한다. $$ f(x) = \begin{Bmatrix} \lambda e^{- \lambda x}, \quad & if \; \; x \geq 0 \\ 0, \quad &if \; \; x < 0 \end{Bma..