기본 콘텐츠로 건너뛰기

5월, 2020의 게시물 표시

통계관련 함수와 메서드 사전

A B C d E F G H I K L M N O P Q R S T U V W Z A statsmodels.ap.stats.anova_lm(x) statsmodels.formula.api.ols 에 의해 생성되는 모형 즉, 클래스 인스턴스(x)를 인수로 받아 anova를 실행합니다. np.argsort(x, axis=-1, kind=None) 객체 x를 정렬할 경우 각 값에 대응하는 인덱스를 반환합니다. Axis는 기준 축을 지정하기 위한 매개변수로서 정렬의 방향을 조정할 수 있음(-1은 기본값으로 마지막 축) pandas.Series.autocorr(lag=1) lag에 전달한 지연수에 따른 값들 사이의 자기상관을 계산 B scipy.stats.bernoulli(x, p) 베르누이분포에 관련된 통계량을 계산하기 위한 클래스를 생성합니다. x: 랜덤변수 p: 단일 시행에서의 확률 scipy.stats.binom(x, n, p) 이항분포에 관련된 통계량을 계산하기 위한 클래스를 생성합니다. x: 랜덤변수 n: 총 시행횟수 p: 단일 시행에서의 확률 C scipy.stats.chi2.pdf(x, df, loc=0, scale=1) 카이제곱분포의 확률밀도함수를 계산 $$f(x, k) =\frac{1}{2^{\frac{k}{2}−1}Γ(\frac{k}{2})}x^{k−1}\exp\left(−\frac{x^2}{2}\right)$$ x: 확률변수 df: 자유도 pd.concat(objs, axis=0, join=’outer’, …) 두 개이상의 객체를 결합한 새로운 객체를 반환. objs: Series, DataFrame 객체. Axis=0은 행단위 즉, 열 방향으로 결합, Axis=1은 열단위 즉, 행 방향으

[html]목록 태그

html에서 목록을 만들기 위해 <ul>, <ol>, <li>, <dl> 태그를 사용합니다. ul unodered list의 약자로서 순서가 없는 목록 작성 ol ordered list의 약자로서 순서가 있는 목록 작성 순서를 나타내기 위해 번호(1,2...), 소문자 (a, b, ...), 대문자(A, B,...), 작은 로마자, 큰 로마자 등을 사용할 수 있습니다. 이 순서 표시는 속성 type로 지정할 수 있습니다. 위의 순서대로 1, 2, 3, 4,5이며 기본값은 1입니다. 순서의 시작은 start 속성으로 지정할 수 있습니다. 5번 부터 시작하면 start=5 reversed 속성을 명시하면 항목의 순서가 역순으로 지정됩니다. li <ul>, <ol>에 포함된 항목들을 나열할 경우 사용합니다. dl definition list의 약자로서 용어를 설명하기 위해 사용하는데 <dt>, <dd> 태그를 포함 <dl> <dt>: 용어 제목 </dt> <dd>: 용어 설명 </dd> </dl> 실제 사용은 다음과 같습니다. <ul>unorder list <li>서울</li> <li>경기</li> <li>광주</li></ul> <ul>array([[1,2,3] <ol style="text_indent: 2em;">[4,5,6]])</ol></ul> <ol type=5> <li>math</li> <li>Korean</li> <li>E

[python] 최대공약수와 최소공배수 클래스 만들기

두 수의 공약수 구하기 def commomFactor(x, y): re=[1] if x < y : smaller =x else: smaller=y for i in range(2, smaller+1): if (x % i ==0) and (y %i==0): re.append(i) return(re) commomFactor(54, 24) [1, 2, 3, 6] 두 수의 최대공약수는 사용자 정의함수 commomFactor()의 결과 중 최대수를 반환하는 방식으로는계산할 수 있습니다. 이러한 방식은 큰 수 일수록 반복문의 횟수가 증가합니다. 이러한 문제는 유클리드 호제법을 적용하여 개선할 수 있습니다. 두 수 a, b 로부터 다음 알고리즘에서 a%b=0이 될 때까지 반복하면 a가 최대공약수가 됩니다. a, b = b, a % b 예를들어 76, 24의 최대공약수의 계산과정은 다음과 같습니다. a=76, b=24 a=24, b=76%24=4 a=4, b=4%4=0 최대공약수: 4 def gcd(x, y): while(y): x , y = y, x % y return x commonFactor(76, 24) [1, 2, 4] gcd(76, 24) 4 두 수의 최소공배수 다음 코드와 같이 두 수중 큰수 결정하고 그 수를 시작으로 1씩 증가하면서 두 수에 의한 나눗셈의 나머지가 모두 0인 최초의 수를 결정합니다. def lcm1(a, b): if a > b: greater = a else: greater = b while(True): if (greater %

정적메서드와 클래스메서드

내용 정적메서드(Static mathod) 클래스 메서드(Class method) 정적메서드(Static mathod)와 클래스메서드(Class method) 정적메서드(Static mathod) 일반적으로 클래스는 생성자(constructor) __init__() 메소드를 통해 인수(들)을 전달합니다. 클래스 내부의 함수, 즉 메서드는 기본적으로 그 인수(들)을 사용합니다. 이러한 메서드를 사용하기 위해서는 인스턴스에 의해 호출되어야 하므로 인스턴스 메서드(instance method) 라고 합니다. class TwoSum: '''두수의 합''' def __init__(self, a, b): self.a=a self.b=b def tot(self): return self.a+self.b TwoSum(2, 3).tot() 5 위 클래스의 경우 __init__()를 통해 전달받은 인자 a, b를 정의하는 인스턴스 TwoSum(2, 3)를 생성한 후에 메서드 tot()를 호출하여 사용합니다. 물론 다음과 같이 __init__() 사용없이 메서드에 직접적으로 인수를 전달 할 수 있습니다. 이 경우 메서드 tot의 첫 인수 'self'는 class 자체를 나타내는 것으로서 상속받은 다른 클래스와 그 인수에 할당된 속성이나 변수가 없는 상태 즉, None입니다. class TwoSum2: '''두수의 합''' def tot(self, a, b): self.a=a self.b=b return self.a+self.b TwoSum2().tot(2,3) 5 위 클래스의 경우 메서드 tot에서 전달받은 인수를 'self'에 할당하는 과정을 생략할 수 있습니다. class TwoSum3:

클래스의 상속(Inheritance)과 추상클래스(Abstract Class)

내용 상속 메서드 재정의(overriding) super() __slot__설정 다중 상속 추상클래스(Abstract class) 클래스의 상속(Inheritance)과 추상클래스(Abstract Class) 상속 상속은 다음과 같이 클래스 이름 다음 괄호내에 상속할 클래스 이름을 전달합니다. 상속의 대상을 부모 클래스, 수퍼 클래스 , 또는 기본 클래스(parent, super, or base class) , 상속 받는 클래스를 자식클래스, 파생클래스, 또는 하위 클래스 (child, derived, or subclass)라고 합니다. class 클래스이름(다른 클래스이름): 내용 상속은 존재하는 클래스 체계를 재이용할 수 있게 합니다. 다음 클래스 Book은 속성으로 책 제목과 종류를 받아 그 제목을 출력하는 메서드를 가지고 있습니다. class Book: tax=0.05 def __init__(self, title, kind, price): self.title=title self.kind=kind self.price=price def Intro(self): print(f'이책의 제목은 {self.title} 입니다.') def Price(self): return self.price+self.price*Book.tax py=Book('Python', 'IT', 27000) py.Intro() 이책의 제목은 Python 입니다. py.Price() 28350.0 다음은 소설에 대한 클래스입니다. 이 클래스는 Book과 같은 구조입니다. 클래스 Fiction은 Book을 수퍼 클래스로 하는 하위 클래스입니다. 그러므로 Book이 포함하는 속성이나 메서드를 입력하지 않은 상태에서 사용할 수 있습니다. 클래스 Fiction의 경우

[python]class에서 init, iter, generator 사용하기

클래스에서 init, iter, generator 사용 __init__() 클래스를 정의하면서 인수를 전달할 경우 __init__()메서드를 사용합니다. 이 메서드는 클래스에 인수를 전달하는 등 초기화를 위해 적용합니다. class Fib: ‘’’iterator that yields numbers in the Fibonacci sequence’’’① def __init__(self, maxnum): 내용 ② ① 클래스에 대한 간략한 설명 즉, docstring 입니다. ② __init__() 메소드는 클래스 개체인 인스턴스를 생성하면서 호출됩니다. 즉, 인스턴스 생성시 첫번째로 실행되는 코드입니다. 이 메소드의 인수중 첫번째 인수는 self입니다. 이것은 새롭게 생성된 객체(인스턴스)를 참조하는 것으로 명시적으로 나타내어야 합니다. 초기화자는 단순히 인자 전달 외에 그 인자의 정성적인 측면의 정보를 제공할 수 있습니다. class Fib: '''iterator that yields numbers in the Fibonacci sequence''' def __init__(self, maxnum): if maxnum <0 : raise ValueError("maxnum은 양수이어야 합니다.") b=Fib(-10) --------------------------------------------------------------------------- ValueError Traceback (most recent call last) ... ---→ 5 raise ValueE

class 정의와 생성

내용 클래스 클래스 객체의 생성, 인스턴스 생성자(constructor) 인스턴스와 속성의 삭제 Class 클래스 두 수의 사칙연산을 한 함수에서 계산하기 위해 다음과 같이 작성할 수 있습니다. def addFunc(x, y): return(x+y) def subFunc(x, y): return(x-y) def mulFunc(x, y): return(x*y) def divFunc(x,y): if y != 0: return(x/y) else: raise ZeroDivisionError("y must not be zero.") def mathOperFunc(x, y): tot=addFunc(x,y) sub=subFunc(x,y) mul=mulFunc(x,y) div=divFunc(x,y) return(tot, sub, mul, div) mathOperFunc(3, 4) (7, -1, 12, 0.75) mathOperFunc(10, 0) ~~ZeroDivisionError: y must not be zero. 위의 다양한 함수들을 다음과 같이 하나의 틀(frame)에 구성할 수 있습니다. class Oper: def __init__(self, x, y): #(1) self.x=x #(2) self.y=y #(3) def addC(self): return(self.x+self.y) def subC(self): return(self.x-self.y) def mulC(self): return(self.x*self.y) def divC(self): if self.y != 0: return(self.x/self.y) else:

정규표현식(Regular Expression)

내용 python 주요 메소드와 주요 함수 정규식의 기호 정규식(Regular Expression, RE) python 주요 메소드와 주요 함수 정규식은 특정한 패턴 을 가진 문자열을 표현하기 위한 표현식(expression)으로 특정 규칙의 텍스트를 검색하거나 치환하기 위해 사용합니다. 즉, 여러개의 문자를 표현하거나 패턴을 찾기 위한 특수한 심벌들과 문자들을 이용하는 문자열입니다. 정규표현식은 간단히 정규식 또는 regex 로 나타냅니다. python 라이브러리 re 모듈을 사용합니다. 패턴과 검색할 문자열은 유니코드 문자열과 8 bit 문자열이 될 수 있습니다. 그러나 상호간의 검색과 패턴을 검사할 수 없습니다. 즉, 치환 또는 검색문자(열)와 대상 문자열은 동일한 형이어야 합니다. 모듈 re에서 일치하는 문자열을 찾기 위한 기본적인 메소드들은 다음과 같습니다. 메소드 내용 obj=re.compile(x) 검색할 대상인 x를 정규식 객체로 변환합니다. 즉, 파이썬 인식할 수 있는 개체로 인코딩합니다. obj.search(y) 검색할 대상인 x를 y에서 검색합니다. 최초로 매칭된 결과만을 객체의 인덱스 구간과 문자를 반환 obj.findall(y) 검색할 대상인 x를 y에서 검색합니다. 매칭된 모든 결과를 리스트 형식으로 반환 결과.group() search()등의 메서드를 적용한 결과 중 매칭된 문자만을 반환하기 위해 사용 import re txt="""행복을 추구하는 우리 삶의 많은 부분은 경제적 의사결정과 밀접하게 관련되어 있습니다. 우리는 일상생활에서 의사결정을 계속하지 않을 수 없 습니다. """ trg=re.compile("결정") result=trg.search(txt) result <re.Match object; span=(28, 30), match='결정&#

[Julia]기본사항과 연산자

Julia의 기본 구조 기본 객체에 값을 할당 x, y, z=1, [1:3; 5:8], "A string" x 1 y 7-element Array{Int64,1}: 1 2 3 5 6 7 8 z "A string" x, y=y,x x 7-element Array{Int64,1}: 1 2 3 5 6 7 8 y 1 chaining: 특정한 값을 여러 변수에 동시 할당할 수 있습니다. 다음 예의 경우 오른쪽에서 왼쪽으로 할당됩니다. x=y=z=1 x, y, z (1, 1, 1) x==y true x==z true 0< x < 5 true 5 <x != y <5 false 상수정의 const date_of_birth = 2012 #constant 선언 2012 1 줄 주석은 python과 같이 '#'을 사용합니다. 여러줄 주석은 "#= ~~ =#"를 사용합니다. i=1 #1줄 주석입니다. 1 i=2 #=여러줄 주석을 입력할 경우 사용 =# 2 키워드 function를 사용하여 함수를 정의합니다. function 함수이름 (인수들) 본문 return(결과) end #function 정의 function add_two(x, y) return(x+y) end add_two (generic function with 1 method) add_two(3, 5) 8 연산자 산술 연산자 연산자 설명 +, -, *, / 덧셈, 뺄셈, 곱셈, 나눗셈 x^y 지수 x\y inverse division (== y/x) x%y, rem(x, y)

[Jupyter notebook]필요사항

Julia Install in ubuntu 18.04 웹사이트 https://julialang.org/downloads/ Generic Linux Binaries for x86 다운로드 다운로드 후 압축관리자를 사용하여 압축풀기 압축푼 디렉토리는 터미널에서 opt 복사합니다. $ sudo cp -r julia-1.4.1 /opt/ opt에 복사한 julia-1.4.1 디렉토리의 /bin/julia 실행파일을 /usr/local/bin 디렉토리 하에 생성하여 링크합니다. /usr/local/bin$ sudo ln -s /opt/julia-1.4.1/bin/julia /usr/local/bin/julia julia를 실행하기 위해 터미널에서 실행 $ julia jupyter notebook에서 julia 사용 터미널에서 julia 실행하고 다음을 적용합니다. julia> using Pkg julia> Pkg.add("IJulia") Cloning default registries into `~/.julia` Cloning registry from "https://github.com/JuliaRegistries/General.git" Added registry `General` to `~/.julia/registries/General` Resolving package versions... Installed MbedTLS_jll ───── v2.16.0+2 Installed SoftGlobalScope ─ v1.0.10 ... jupyter notebook을 실행하면 "New"에 Julia 1.4.1이 생성 jupyter notebook 테마 변경 jupyterthemes를 설치 In [1]: !pip install jupyterthemes Out[1]: Collecting jupyter