기본 콘텐츠로 건너뛰기

라벨이 클로저인 게시물 표시

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

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

클로저(Closure)

클로저(Closure) 함수는 일급객체 이므로 다른 함수의 반환값이 될 수 있습니다. 예를 들어 중첩함수 를 포함하는 경우 외부함수 내부에서 중첩함수를 호출하여 실행 시킬 수 있습니다. 다음 함수 first는 중첩함수인 increse()를 포함하고 있는 구조입니다. def first(x): #(1) def increase(y): #(3) return (x+y) #(4) return increase(x) #(2) first(1) 2 함수에서 정의된 변수는 작동영역이 함수 내부로 한정됩니다. 그러므로 위 함수에서 변수 x는 외부함수인 first() 내부이고 변수 y는 중첩함수 increase()의 내부로 한정됩니다. 작동범위가 가장 작은 변수를 지역변수 (local vaiable)라고 하고 그 외 부분에 존재하는 변수를 비지역변수 (non-local variable)라고 합니다. 즉 y는 지역변수 x는 비지역변수가 됩니다. 다음과 같은 위 함수의 동작 과정에 따라 비지역변수와 지역변수의 변화가 발생합니다. first 함수에 인수 x 값 전달 본문에 중첩함수 이외에 다른 코드가 없으므로 직접적으로 return 함수를 실행 : 인수 x=1을 전달하면서 중첩함수 increase() 호출 중첩함수에 전달된 인수 x=1은 지역변수 y값이 됩니다. increase()함수 실행: 비지역변수 x(1)과 지역변수 (1)의 합을 실행 위와 같은 구조의 함수에서 지역변수 y값은 x값에 의존됩니다. 즉, 지역변수 y를 x와는 독립적으로 변경할 수 없습니다. x와 독립적으로 사용하기 위해 다음과 같이 함수의 수정할 수 있습니다. def first1(x): def increase(y): return (x+y) return increase first1(1) <function __main__.first1.<locals>.increase(y)> 함수 first1()

람다함수(Lambda Function)

람다함수(Lambda function) 함수를 작성하기 위해 def 키워드를 사용할 경우 반드시 함수의 이름을 선언해야 합니다. 이에 반해 특정한 이름의 선언 없이 함수를 작성할 수 있습니다. 이러한 함수를 익명함수라고 합니다. 파이썬에서 키워드 람다(lambda)는 익명함수를 정의하기 위해 제공됩니다. 함수 개체가 필요할 때마다 사용할 수 있습니다. 예를 들어, 다음은 덧셈을 수행하는 간단한 람다 함수를 정의하는 방법입니다. add=lambda x, y:x+y add(5, 4) 9 위 익명함수를 def를 사용하여 작성하면 다음과 같습니다. def add1(x, y): return x+y add1(5, 4) 9 익명함수는 def에 의한 함수보다 간결하게 사용할 수 있습니다. 이 간결성은 다음과 같이 다른 객체로 할당 없이 직접적으로 사용할 수 있는 표현식(expression)이라는 점 때문입니다. (lambda x, y:x+y)(5, 4) 9 람다와 일반 함수 정의 사이에는 또 다른 구문상의 차이점이 있습니다. Lambda 함수는 단일 표현식으로 제한됩니다. 이는 람다 함수가 명령문이나 주석이나 return과 같이 반환명령문을 사용할 수 없음을 의미합니다. 그러나 반환명령문을 사용할 수 없음에도 불구하고 람다 함수는 표현식을 평가한 다음 표현식의 결과를 자동으로 반환하므로 항상 암시적 return 문이 있습니다. 이 때문에 단일 표현식인 lambda는 함수로 명명될 수 있는 것입니다. 람다의 가장 빈번한 사용 사례는 대체 키로 iterable을 정렬하기 위한 짧고 간결한 키(key) 함수를 작성하는 것입니다. 예를 들어 sorted(iterable, key, reverse=False) 은 반복가능한 객체(iterable)를 정렬하기 위한 파이썬 내장함수 입니다. 이 함수에서 key는 객체의 적용되는 함수를 지정하는 매개변수로서 lambda 함수를 사용할 수 있습니다. student= [('john', &

Python의 함수는 1급(First Class)객체

내용 함수도 변수에 할당할 수 있는 객체 함수는 데이터 구조내에 저장될 수 있는 객체 다른 함수의 인자로서 함수 중첩함수(Nested function) 다른 함수의 반환값으로 함수(클로저) 객체의 1급객체화(클래스) __call__ Python의 함수는 1급(First Class)객체 1급 객체(First Class Object)는 일반적으로 모든 개체(entity)에서 사용, 수정이 가능한 개체로 다음과 같이 실행될 수 있습니다. 변수에 할당 데이터 구조에 저장 다른 함수의 인자로 전달 다른 함수의 반환값(closer) 수정되고 객체에 할당 가능 함수도 변수에 할당할 수 있는 객체 Python 프로그램의 모든 데이터는 객체 또는 객체 간의 관계로 표현됩니다. 문자열, 목록, 모듈 및 함수와 같은 것은 모두 객체입니다. def hello(name): return f"{name}님 안녕하세요!" hello('홍길동') '홍길동님 안녕하세요!' 위 함수 hello()도 객체이므로 다른 변수에 할당하여 새로운 객체를 생성할 수 있습니다. 이렇게 생성된 새로운 객체 greet와 hello는 같은 객체입니다. greet=hello greet("김영희") '김영희님 안녕하세요!' hello == greet True hello is greet True id(hello), id(greet) (140489754398288, 140489754398288) 위의 함수이름 hello, greet는 함수 개체를 저장하는 변수이름입니다. 다음 코드에서 하나의 함수이름을 삭제한 경우 다른 함수이름으로 여전히 함수가 수행되고 있습니다. 또한 함수의 내부 식별자(dentifier)를 반환하는 매직메소드 __name__ 를 사용하여 greet의 식별자를 확인하면 최초 함수 이름인 h