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은 열단위 즉, 행 방향으
Lambda 함수
함수의 이름이 없는 익명함수(anonymous function)이라고 합니다.
{매개변수 → 실행 코드(몸체)}
위 함수의 구조와 같이 람다(익명)함수는 중괄호 내에 실행문을 입력합니다.
다음은 간단한 예로 문자열을 출력하는 함수입니다.
이 함수를 실행하기 위해서는 함수다음에 인수를 전달하기 위한 ()를 같이 나타내야 합니다.
다음은 전달하는 인수가 별도로 존재하지 않는 경우입니다.
{println("Hello")}()
Hello
Hello
람다함수 역시 개체이므로 변수에 저장할 수 있습니다.
이 경우 변수명은 함수이름과 같은 역할을 합니다.
그러므로 객체를 호출할 경우 함수와 같이 적용해야 합니다. 즉, 변수명()
val swim={println("swim \n")}
swim()
swim
swim()
swim
다음은 매개변수가 존재하는 경우입니다.
var dirty = 20
val waterFilter = {dirty: Int -> dirty/2}
waterFilter(dirty)
10
val waterFilter = {dirty: Int -> dirty/2}
waterFilter(dirty)
10
위 람다는 함수를 간단하게 표현하는 방법으로 나타낼 수 있습니다.
fun waterFilter(dirty:Int) = dirty+10
waterFilter(dirty)
30
waterFilter(dirty)
30
람다 함수는 실제로 고차함수(함수를 인수로 취하는 모든 함수)를 사용할 때 강력합니다.
fun updateDirty(dirty: Int, operation: (Int)->Int):Int{
return operation(dirty)
}
updateDirty(dirty){dirty -> dirty+50}
70
return operation(dirty)
}
updateDirty(dirty){dirty -> dirty+50}
70
고차 함수(Higher-Order Functions)
일반적으로 함수는 매개변수와 반환값이 데이터인데 반해고차 함수(고계도 함수)는 전달받는 매개변수나 반환물이 함수인 경우입니다.
즉, 다음 중 하나를 만족하는 함수를 의미합니다.
1) 함수를 매개변수(파라미터)로 전달 받는 함수
2) 함수를 리턴(반환)하는 함수
2) 함수를 리턴(반환)하는 함수
다음은 함수에 인수로 문자열을 받아 그 문자열의 길이를 반환하는 함수로서
매개변수를 람다함수를 받는 경우입니다.
이 함수는 람다함수를 매개변수로 받기 때문에
그 함수의 적용은 길이를 반환하는데에 고정되지 않습니다.
fun stringMapper(str:String, result:(String)->Int):Int{
return result(str)
}
println(stringMapper("Android", {input-> input.length}))
7
println(stringMapper("Android", {input-> input.length*input.length}))
49
return result(str)
}
println(stringMapper("Android", {input-> input.length}))
7
println(stringMapper("Android", {input-> input.length*input.length}))
49
다음은 정수와 람다함수를 매개변수로 받아 인수인 정수에 다른 함수를 적용하는 것입니다.
fun numFun(x1: Int, argFun: (Int) -> Int){
val result = argFun(x1)
println("x1 : $x1, someFun1 : $result")
}
numFun(7,{x -> x*x*x})
x1 : 7, someFun1 : 343
numFun(7, {x -> (x*x)/10})
x1 : 7, someFun1 : 4
val result = argFun(x1)
println("x1 : $x1, someFun1 : $result")
}
numFun(7,{x -> x*x*x})
x1 : 7, someFun1 : 343
numFun(7, {x -> (x*x)/10})
x1 : 7, someFun1 : 4
함수내에 함수를 매개변수로 받은 것입니다.
즉, 함수내에 내포된 함수를 하나더 생성한 것입니다.
이 경우 내포한 함수 역시 매개변수가 필요합니다.
위의 두 경우 내포된 함수에 전달한 다른 매개변수를 사용합니다.
매개변수로 사용된 람다함수의 결과를 다르게 할 수 있으므로
하나의 함수에서 다양한 결과를 생성하게 할 수 있습니다.
댓글
댓글 쓰기