기본 콘텐츠로 건너뛰기

라벨이 function인 게시물 표시

[matplotlib]quiver()함수

[python] 주요 함수와 메서드

함수와 메소드 내용 A B C D E F G H I J K L M N O P Q R S T U V W Z A statsmodels.tsa.stattools.acf(x, adjusted=False, nlags, qstats=False, alpha=None,...) 매개변수 nlags에 지정한 시차까지의 자기상관계수를 반환 adjusted=True이면 자유도 (샘플수 - 설명변수의 수)를 고려 qstats=True이면 Ljung-Box q statistic 분석 즉, 자기상관=0 이라는 귀무가설을 검정하고 p-value를 반환 alpha를 지정하면 신뢰구간을 반환, 0.05 경우 95% 신뢰구간 statsmodels.ap.add_constant(설명변수) 설명변수의 행렬에 모든 요소들이 1인 편차항을 포함시킵니다. $$X=\begin{bmatrix}x_1\\x_2\\\vdots\\x_n\end{bmatrix} \rightarrow X0=\begin{bmatrix}1& x_1\\1& x_2\\\vdots\\1& x_n\end{bmatrix}$$ np.allclose(A, B, rtol = 1e−05, atol = 1e−08) 객체 A, B의 모든 원소가 같으면 True, 그렇지 않으면 False를 반환 각 원소값은 상대 임계값(rtol)과 절대 임계값(atol)을 기준 rtol과 atol의 기본값은 각각 소수점 이하 5자리 그리고 8자리까지 비교 scipy.stats.ansderson(x, dist="norm") x: 배열 계열의 객체 dist: 다양한 분포를 지정할 수 있음(‘norm’, ‘expon’, ‘logistic’, ‘gumbel’…) 기본은 nor(정규분포)...

결합함수의 미분

내용 함수들의 합과 차 함수들의 곱 미분의 곱법칙 함수들의 나눗셈 분수의 미분규칙 지수 형태의 미분 연쇄법칙 함수들의 합과 차 두 개 이상으로 구성된 함수의 합에 대해 미분을 고려해 봅니다. 먼저 간단한 예로 다음 식의 미분을 계산합니다. $$\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(...

[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 Functi...

코틀린 함수의 종류(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(.) 연산자 적용...

코틀린 함수의 형식

함수  함수의 형식 함수는 특정한 일을 수행하는 것과 관련된 문들(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={} ...