기본 콘텐츠로 건너뛰기

라벨이 function인 게시물 표시

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

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은 열단위 즉, 행 방향으

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

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은 열단위 즉, 행 방향으

데코레이터(Decorator, 장식자)

내용 데코레이터 Basic 데코레이터에 의한 함수의 수정 다양한 데코레이터의 적용 데코레이터(Decorator, 장식자) 데코레이터 데코레이터(장식자)는 함수를 수정하지 않은 상태에서 추가기능을 구현할 경우 사용합니다. 즉, 1급 객체인 호출 가능 객체 (callable object)를 영구적으로 수정하지 않고도 그들(함수, 메서드 및 클래스)의 동작을 확장하고 수정할 수 있습니다. 새로 작성하는 개체에 내장된 또는 기존 클래스 또는 함수의 동작을 추가하기 위해 데코레이터를 사용합니다. 이러한 방법의 기반은 함수가 1급객체로서 다음과 같이 작용할 수 있기 때문에 가능합니다. 함수는 객체입니다. 변수에 할당하고 다른 함수에 전달 및 반환할 수 있습니다. 함수는 다른 함수 내부에서 정의할 수 있으며 그 중첩함수(내부함수)는 외부함수의 모든 속성과 변수들을 사용합니다. ( 클로저 ) Basic 데코레이터는 다른 함수를 "장식"(decoration)하거나 "래핑"(wraping)하고 래핑된 함수가 실행되기 전후에 코드를 실행할 수 있도록 합니다. 데코레이터를 사용하면 다른 기능의 동작을 변경하거나 확장할 수 있는 재사용 가능한 블록을 정의할 수 있습니다. 또한 래핑된 함수 자체를 영구적으로 수정하지 않고도 이를 수행할 수 있습니다. 함수의 동작은 장식될 때만 변경됩니다. 기본적으로 데코레이터는 callable을 입력으로 받아 다른 callable을 반환하는 callable개체입니다. 다음 함수에는 다른 함수를 인수로 받는 callable으로 인수로 받는 함수를 수정없이 반환합니다. def nullDeco(func): return func 위 함수에 다른 함수를 인수로 전달합니다. 당연히 전달된 함수가 반환될 것입니다. def greet(): return 'Hello!' nullDeco(greet()) 'Hello!' cal

결합함수의 미분

내용 함수들의 합과 차 함수들의 곱 미분의 곱법칙 함수들의 나눗셈 분수의 미분규칙 지수 형태의 미분 연쇄법칙 함수들의 합과 차 두 개 이상으로 구성된 함수의 합에 대해 미분을 고려해 봅니다. 먼저 간단한 예로 다음 식의 미분을 계산합니다. $$\begin{align} y&=(x^2+c)+(ax^4+b)\\ \frac{dy}{dx}&=2x+4ax^3 \end{align}$$ x, a, b, c =symbols("x, a, b, c") y=(x**2+c)+(a*x**4+b) y ax 4 +b+c+x 2 diff(y, x) 4ax 3 +2x 위 과정은 미분 개념 을 적용하여 계산한 것입니다. 이를 응용하여 특정한 부분을 새로운 변수로 치환하는 방법을 적용해 봅니다. 먼저 위 식의 우항들을 다음과 같이 치환합니다. $$\begin{align} x^2+c&=u\\ax^4+b&=v\\ y&=u+v \end{align}$$ 위 식의 치환된 각항은 x로 구성되어 있음으로 이 식의 최종 미분인 $\displaystyle \frac{dy}{dx}$와 u와 v의 미분 관계를 식 1과 같이 정의할 수 있습니다. $$\begin{align}\tag{1} \frac{dy}{dx}&=\frac{du}{dx}+\frac{dv}{dx}\\ &=\frac{d(x^2+c)}{dx}+\frac{d(ax^4+b)}{dx}\\ &=2x+4ax \end{align}$$ 위 치환 과정을 코드화하면 다음과 같습니다. x, a, b, c =symbols("x, a, b, c") u=Function('u')(x) #(1) v=Function('v')(x) #(2) eq_u=u-x**2+c eq_u c-x 2 +u(x) eq_v=v-(a*x**4+b) eq_v -ax 4 -b+v(

Python, 함수(Function)

내용 Function(함수)의 정의 인수의 전달 가변인수 Asterisk(*) 가변인수의 표시 "*"와 "**"연산자를 사용하여 함수 인수의 unpacking Function(함수) Function(함수)의 정의 함수는 다음 그림과 같이 인자(매개변수)들을 전달하여 결과를 생성할 수 있는 코드들의 그룹입니다. 기본적으로 함수는 파이썬이 자체적으로 가지고 있는 함수인 내장함수 (built-in function)와 각 모듈과 패키지 에 포함된 함수들, 사용자에 의해 생성되는 함수인 사용자 정의함수 (user-defined function)으로 구분합니다. 사용자 정의함수는 키워드 def 로 시작합니다. def 함수이름(매개변수 들): # header 부분 """ docstring""" 본문 함수 작성과정에서 실제 실행에 영향을 주지 않는 간략한 설명을 첨가할 있습니다. 이 부분을 docstring이라하며 세개의 따옴표 내에 첨가합니다. 이 부분은 함수내에 포함되는 주석(comment)이므로 header 아래의 어디에나 위치할 수 있으나 필수적인 부분은 아닙니다. 그러나 함수를 사용하는 다른 사용자들이나 추후에 그 함수의 점검에 있어 유익한 도움이 됩니다. 다음은 두 객체의 각 요소의 덧셈을 실행하는 사용자 정의 함수입니다. def Tot(x, y): # ①    """이 함수는 리스트등 두 콜렉션 객체의    각 원소의 합을 계산합니다."""    re=[] # ②    for i in range(len(x)): # ③       re.append(x[i]+y[i]) # ④    return re # ⑤ ①: 함수의 헤드 부분으로 헤드의 끝 부분에 콜론(:

[pyton]진수변환 프로그램

진수 변환 10진수를 각 진수로 전환하기 위해 나머지를 연결합니다. 예를들어 7를 2진수 (binary)로 전환하는 과정은 다음과 같습니다. x=7 1) x를 2로 나누어 몫과 나머지를 계산합니다. q, r=divmod(x, 2)#2로 나눈 몫과 나머지 q, r (3, 1) 2) 위 결과의 몫을 다시 나눕니다. q2, r2=divmod(q, 2) q2, r2 (1, 1) 3) 2)과정을 몫이 0이 될때까지 반복합니다. q3,r3=divmod(q2, 2) q3, r3 (0, 1) 4) 각 과정에서 나머지를 순서적으로 결합합니다. result: 111 2진수 -> 10진수는 2진수의 각자리의 값x2 자리수수 와 같이 계산한 값들의 합입니다. y=111 위 수의 각각을 분리하기 위해 문자열로 전환합니다. y=str(y) for i in y: print(i) 1 1 1 위 결과 문자열의 길이가 3입니다. 그러므로 첫 원소부터 2 2 , 2 1 ,2 0 을 곱하여 모두 합해 줍니다. 1*2**2 + 1*2**1 + 1*2**0 7 8진수와 16진수 변환도 같은 과정으로 진행됩니다. 단지 16진수의 경우는 10, 11, ..., 15를 a, b, ..., f로 나타냅니다. 그러므로 다음의 변화 코드가 필요합니다. ref={'a':10, 'b':11, 'c':12, 'd':13, 'e':14, 'f':15} ref['b'] 11 ref.get("b") 11 ref1={10:'a',11:'b', 12:'c', 13:'d', 14:'e', 15:'f'} ref1.get(15)#==ref1[15] '

코틀린 람다함수와 고차함수

Lambda 함수  함수의 이름이 없는 익명함수(anonymous function)이라고 합니다. {매개변수 → 실행 코드(몸체)} 위 함수의 구조와 같이 람다(익명)함수는 중괄호 내에 실행문을 입력합니다. 다음은 간단한 예로 문자열을 출력하는 함수입니다. 이 함수를 실행하기 위해서는 함수다음에 인수를 전달하기 위한 ()를 같이 나타내야 합니다. 다음은 전달하는 인수가 별도로 존재하지 않는 경우입니다. {println("Hello")}()       Hello 람다함수 역시 개체이므로 변수에 저장할 수 있습니다. 이 경우 변수명은 함수이름과 같은 역할을 합니다. 그러므로 객체를 호출할 경우 함수와 같이 적용해야 합니다. 즉, 변수명() val swim={println("swim \n")} swim()       swim 다음은 매개변수가 존재하는 경우입니다. var dirty = 20 val waterFilter = {dirty: Int -> dirty/2} waterFilter(dirty)       10 위 람다는 함수를 간단하게 표현하는 방법으로 나타낼 수 있습니다. fun waterFilter(dirty:Int) = dirty+10 waterFilter(dirty)       30 람다 함수는 실제로 고차함수(함수를 인수로 취하는 모든 함수)를 사용할 때 강력합니다. fun updateDirty(dirty: Int, operation: (Int)->Int):Int{     return operation(dirty) } updateDirty(dirty){dirty -> dirty+50}       70 고차 함수(Higher-Order Functions) 일반적으로 함수는 매개변수와 반환값이 데이터인데 반해  고차 함수(고계도 함수)는 전달받는 매개변수나 반환물이 함수인 경우입니다.  즉, 다음 중 하나를

코틀린 함수의 종류(1)

단일 표현(Single expression)의 함수   fun max(a:Int = 3, b:Int = 6):Int{        return if(a>b) a else b      } 위 max함수의 본문은return() 문내에 값을 나타내는 단일 표현(single expression)을 전달하는 구조 입니다. 이와같이 단일 표현으로 구성된 함수의 경우 중괄호({ })를 삭제하고 함수에 결과를 직접적으로 할당할 수 있습니다. 즉, 할당연산자(“=”)를 사용하여 본문을 직접 함수의 헤드와 연결하는 방식입니다. fun max1(a:Int = 3, b:Int = 6):Int=if(a>b) a else b max1(10, 12) 12 위의 경우는 결과형을 명시하였지만 컴파일 동안 유추할 수 있으므로 결과형(return type)은 생략할 수 있습니다. fun max1(a:Int = 3, b:Int = 6)=if(a>b) a else b max1(10, 12) 12 그러나 중괄호로 시작되는 본문 내에 return문 존재하는 함수의 경우 결과형(return type)은 반드시 명시하여야 합니다. Infix 함수 두개의 변수 가운데 오는 함수입니다. map이라는 자료구조를 생성할 경우 사용되는 ‘to’역시 infix함수입니다. 이 함수는 다음의 형식으로 직접 정의할 수 있습니다. infix fun 매개변수1자료형.함수이름(매개변수2): 반환형 {   본문 } 두개의 매개변수 중 매개변수1은 ‘this’라는 키워드로 본문에 호출됩니다. 다음은 두 정수의 합을 반환하는 함수입니다. infix fun Int.Total(x: Int): Int {   return this+x //this는 매개변수 1을 의미 } 12.Total(3)//dot(.) 연산자 적용      15 12 Total 3 // dot 연산자 없이 적용        15 이 infix 함수의

코틀린 함수의 형식

함수  함수의 형식 함수는 특정한 일을 수행하는 것과 관련된 문들(statements)과 표현들(expressions)의 블럭입니다. 이 블럭은 서로 연관된 많은 코드들을 보다 체계적으로 하나의 그룹으로 구성할 수 있으며 재사용을 편리하게 합니다. 코들린에서 함수는 두가지 종류가 존재합니다. 1) 표준라이브러리 함수 2) 사용자 정의 함수 kotlin의 함수의 정의는 fun 예약어를 사용하여 정의합니다. <함수 형식> fun 함수이름(입력인자와 자료형): 출력자료형{         함수내용(표현식들, 본문)         } 위 형식에서 함수이름 선언부를 head라고 하며 함수내용은 중괄호(‘{ }’)내에 입력된 구조로 중괄호 내의 내용들을 블럭(block body, 본문)라고 합니다. 입력인자는 이 함수의 매개변수(parameter)가 됩니다. 함수의 결과를 return()문을 사용하여 반환할 경우 결과의 자료형은 명시해야 합니다. 그러나 그 결과를 println(),또는 print()등의 함수를 사용하여 출력할 경우 자료형을 명시할 필요가 없습니다. fun printlnEx(a: String){ println(a) } printlnEx("test") test 다음은 두 개의 정수중에서 큰 것을 선택하는 함수입니다. fun max(a:Int, b:Int): Int{     return if(a>b) a else b } max(3, 10) 10 위 max 함수는 두 수에서 큰 값을 반환하는 함수로서 두개의 매개변수를 가지고 있습니다. 그 함수의 return 문은 결과값을 반환하는 함수로서 이 함수의 인수는 객체, if~, for~와 같은 다양한 표현(expression)등이 전달될 수 있습니다. 또한 return이 포함된 블럭의 종료를 의미합니다. return 키워드를 사용할 경우 반환(결과)의 자료형을 반드시 명시되어야 합니다. 함수의 매개변수

함수(Function)

함수의 정의 함수의 정의역(domain)과 치역(range) 역함수(Inverse function) 함수(Function) 함수의 정의 식에 입력되는 값에 대응하는 정확히 하나의 수를 생성한다면 그 식을 함수라고 합니다. 예)   1. 다음 식은 함수? 1) y=x 2 +1 한개의 값 x에 대응되는 y 역시 하나입니다. 그러므로 함수입니다. 2) y 2 =x+1 한개의 값 x에 대응되는  y의 값은 한 개 이상일 수 있습니다. 예로 x=3일 경우 y값은 두개 입니다. y 2 = 4 → y=2 or -2 그러므로 이 식은 함수가 아닙니다. import numpy as np from sympy import * 일반적으로 함수는 f(x)로 나타냅니다. f(x) = 2x 2 -5x+3 식 f(x)에서 x=3 인 경우의 대응되는 값은 다음과 같이 하나입니다. f=2*x**2-5*x+3 f.subs(x, 3) 6 위 코드와 같이 수학의 수식을 표현하고 계산하기 위해 sympy 패키지 를 사용합니다. 함수의 정의역(domain)과 치역(range) 정의역 은 함수에 전달할 수 있는 모든 값의 범위이며 함수로 전달되는 각 값에 대응하는 결과를 치역 이라고 합니다. 예를들어 f(x) =5x-3의 경우 이 함수 x값에 전달할 수 있는 값들과 이 함수에 의해 생성되는 결과의 범위는 다음과 같습니다. Domain:$(-\infty, \infty)$ range: $(-\infty, \infty)$ $g(x)=\sqrt{4-7t}$에서 변수 t에 전달할 수 있는 수는 한정되어 있습니다. 즉, 제곱근의 수는 0을 포함하는 양수이어야 합니다. 즉, $4-7t \geq 0 \rightarrow t \leq \frac{4}{7} $ Domain: $\left( -\infty , \frac{4}{7} \right]$ 구간을 표시할 때 괄호' ( ) '와 대괄호' [ ] '를 사용합니다. 대

데이터를 목록화하여 함수 적용_python

연속변수와 명목변수가 혼합된 데이터 셋의 경우 연속변수를 명목변수로 목록화하여 어떤 통계량을 계산할 필요가 있습니다. 특히 anova 등 분산분석시 이러한 과정이 필요합니다. 다음의 자료는 각 환기 시스템에 대한 유량을 측정한 것입니다.  import numpy as np import pandas as pd >>> ven     folate ventilation 1      243  N2O+O2,24h 2      251  N2O+O2,24h 3      275  N2O+O2,24h ... 20     270      O2,24h 21     293      O2,24h 22     328      O2,24h 위 자료들 중 ventilation의 종류에 따라 float를 분류할 목적입니다. ventilation의 종류는 pd.unique() 함수를 사용하여 알아볼수 있습니다. 이 함수는 데이터들 중 고유한 부분만을 추출하여 반환합니다.  >>> idx=pd.unique(ven["ventilation"]) >>> idx array(['N2O+O2,24h', 'N2O+O2,op', 'O2,24h'], dtype=object) 즉 ventilation은 3가지로 값들로 구성되어 있으며 이에 따라 float를 구분하여 각각에 대한 통계량을 계산하고자 합니다.  우선 반복문을 사용하여 다음과 같이 분류하고 각 분류된 그룹화된 데이터셋에서 평균과 합을 계산할 수 있습니다.  ven1={} ...: mu={} ...: tot={} ...: for i in idx: ...:     ven1[i]=ven[ven.iloc[:,1]==i].iloc[:,0] ...:     mu[i]=np.mean(ven1[i]) ...:     tot[i]=np.sum(

분산-공분산 행렬

어떤 행렬의 열들 사이의 공분산을 계산하기 위해 사용할 수 있는 함수는 numpy.cov() pandas데이터프레임.cov() 가 있다. 그러나 numpy.cov()의 경우 두 객체들 사이의 공분산을 계산하고 그 이상의 차원에서는 엉뚱한 값들을 반환한다. >>> x                 Open      High       Low    Volume 2017-12-05  0.493023  0.648262  0.624396 -0.220359 2017-12-06  0.737391  1.452395  1.166491  0.200745 2017-12-07  1.877774  1.256265  0.499297  0.316586 2017-12-08  0.065379 -0.450067 -0.480642  0.635944 2017-12-11 -0.260445 -0.548132 -0.084496 -0.518430 2017-12-12 -0.138261 -0.626584 -0.105346 -1.072204 2017-12-13 -0.117897 -0.705036 -0.188745 -0.986260 2017-12-14 -0.525176 -0.116646 -0.147046 -0.465978 2017-12-15  0.594843  1.668138  1.249890  1.623176 2017-12-18  1.144670  0.785553  0.853744 -0.322070 2017-12-19  0.615207  0.177549  0.978842 -1.352655 2017-12-20  1.042850  1.177813  1.041392 -0.172654 2017-12-21  0.289383  0.334453  0.999692 -1.654738 2017-12-22  0.004287 -0.391228 -1.710780  2.694075 2017-12-26 -2.032111 -2.097560 -1.794179 -0.207932 201

정규분포와 중심극한정리

1. 정규분포 시점 t에서의 주가의 미래가격은 매우 큰 불확실성을 가지기 떄문에 S(t)로 표시하는 것에 의해 그 주가 변수를 랜덤변수로 간주하여 모형화합니다. 랜덤변수는 그들의 분포에 의해 특징됩니다. 그러한 분포 특징은 다음과 같이 개념화 할 수 있습니다. 1. 두 랜덤변수들의 분포가 같다면 다음과 같이 표시합니다. $$P(X \leq t)  \equiv P(Y \leq t), \quad  -\infty < t < \infty$$ 2. finance에 많은 변수들은 정규분포와 로그노말 분포에 부합합니다. 정규분포의 밀도함수(normal cdf) $$\text{F(x)} =P(X \leq x) = \int^x_{-\infty} \frac{1}{\sigma \sqrt{2\pi}} \text{exp}(-\frac{(t-\mu)^2}{2 \sigma^2}) \text{dt} $$ 이 함수를 따르는 정규분포의 모수는 기대값(평균) E(X)=$/mu$, 분산 V(X)=$\sigma^2$이고 다음과 같이 나타냅니다. $$ \text{X} \sim \text{N}(\mu, \sigma^2)$$ 주가가 로그노말분포를 따른다면 다음 관계가 성립될 것입니다. $$\text{ln(S(t))} \sim \text{N} (t\mu, t\sigma^2)$$ 2. 만약 양의 실수인 랜덤변수가 다음을 따른다면 그 변수는 로그노말분포를 갖습니다. $$ \text{ln(W)} \sim \text{N} (\mu, \sigma^2)$$ 위 분포로 부터 다음이 유도됩니다. E(W) = $e^({ \mu +\frac{\sigma^2}{2}})$ V(W) = $e^({2\mu + \sigma^2})(e^{\sigma^2} -1)$ 이 정규분포의 밀도함수는 모수 $\mu, \sigma$에 의존됩니다. $$f(x; \mu, \sigma)= \frac{1}{\sigma \sqrt{2\pi}} \text{exp}(-\frac{(x-\mu)^2}{2 \

Log-normal distribution의 소개

확률이론에서 로그노말분포는 어떤값들의 로그화가 정규분포에 부합하는 랜덤변수의 연속확률분포입니다. 즉, 변수 X가 로그노말 분포를 따른다면 Y=ln(X)는 노말분포에 부합합니다. 반대로 Y가 정규분포를 따른다면 X=exp(Y)는 로그노말분포를 가집니다. 로그노말분포를 따르는 랜덤변수는 양의 실수이어야 하겠지요. 로그노말분포의 랜덤변수들은 양의 독립적 변수들의 곱셈으로 얻어지는 값들에서 나타납니다. 많은 데이터를 정규분포와의 비교에서 크거나 작은 왜도에 의해 이탈되는 경우가 많이 발생합니다. 왜도 분포는 평균이 낮거나 분산이 크거나 그 값들이 음수일 경우에 자주 발생합니다. 이러한 분포는 log normal 분포에 근접한 경우가 자주 발생합니다. 어떠한 효과가 첨가적(additive)으로 일어나는 경우 정규분포, 곱셈효과(multiplicative effect)일 경우는 로그노말분포를 따르는 경우가 많습니다. 다음은 첨가효과를 보기위해 주사위를 두개를 시행한 후 더한값의 분포를 정규분포와 비교해 보았습니다. import numpy as np import pandas as pd import matplotlib.pyplot as plt import matplotlib.pyplot as plt x=np.random.randint(1, 7, size=10000) y=np.random.randint(1, 7, size=10000) z=x+y bi=np.linspace(1, 13, 12) n, bins, ig=plt.hist(z, bi, normed=True, linewidth=0.5, edgecolor="k") mu=np.mean(z) sd=np.std(z) plt.plot(bins, tats.norm.pdf(bins, mu, sd), color='r', linewidth=2) plt.show() 위 분포는 다음의 모수를 가진 정규분포에 부합하는 것을 알 수 있습니다.  (위 코드