기본 콘텐츠로 건너뛰기

라벨이 data_type인 게시물 표시

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

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

코틀린 자료형 null 타입 선언과 검사

Nullable 자료형 선언  코틀린에서 선언된 변수는 사용전에 반드시 값이 할당되어야 합니다. 값이 할당되지 않은 변수를 사용하면 오류가 발생됩니다. 코틀린에서는 변수 선언시 값이 없음을 지정하여 이러한 예외를 방지할 수 있습니다. 값이 없는 상태를 null이라고 하며 변수선언시 '?'를 사용하여 선언할 수 있습니다. val 변수명: 자료형? var 변수명: 자료형? 일반적 변수 선언은 null 값을 허용하지 않습니다. var obs="Kotlin" obs=null println(obs)       Null can not be a value of a non-null type String var obs1:String?="Kotlin" obs1=null println(obs1)       null Safe Call 또는 non-null(!!) 기호사용 null을 허용하는 변수에는 null을 허용하지 않은 속성이나 함수는 사용할 수 없습니다. 사용할 경우 예외(NullPointerException, NPE)를 발생합니다. 다음 코드에서 사용된 속성 .length: 문장열 길이를 반환하는 속성  obs1.length Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type String? 위의 경우 obs1은 null을 허용하는 변수(nullable variable)입니다. 반면에 속성.length는 null이 아닌 문자열 속성입니다. 그러므로 에러가 발생합니다. 이 과정은 전달하는 문자열이 nullable인지 아닌지를 먼저 검사한 후 null이 아니면 속성을 실행하고 아니면 null 값을 반환하도록 할 수 있습니다. 이러한 과정을 safe call 이라고 합니다. println(obs1?.length)       null saf

코틀린 자료형 표현과 변환

Underscore의 적용 큰수를 표시할 경우 일반적으로는 100단위로 구분하여 나타냅니다. 1000,000,000 그러나 코딩시 위와 같은 표시는 에러를 발생합니다. 대신에 코틀린은 underscore를 사용합니다. val a=1000_000_000 a      res4: kotlin.Int = 1000000000 자료의 변환  자료형은 자료가 저장되는 크기를 지정하는 것입니다. 이것은 작은 자료형은 큰 자료형의 포함된다는 의미는 아닙니다. 그러므로 자료형이 다르면 개별적으로 취급됩니다. 즉, 다른 자료형 사이의 연산이나 교환은 일어날 수 없습니다. 물론 자바, 파이썬등 다른 언어에서는 자동 변환이 일어나지만 코틀린의 경우 반드시 자료들의 연산을 위해서는 자료형을 일치시켜야 합니다. 예를들어 정수형인 변수값이 long 형인 변수에 직접적으로 할당되지 않습니다. val a: Int=1 val b: Int?=a println("a:$a, b:$b")      a:1, b:1 a == b      res8: kotlin.Boolean = true val c: Long=a c      error: type mismatch: inferred type is Int but Long was expected val c: Long=a 위 결과와 같이 정수형과 long 형은 자료형이 다르기 때문에 에러가 발생합니다. 그러므로 위와 같은 과정은 자료형의 변환이 우선되어야 합니다. val b: Byte = 1 val i: Int = b.toInt() b      res16: kotlin.Byte = 1 i      res17: kotlin.Int = 1 //큰 자료형에서 작은 자료형으로 변환 val b: Int = 1 val i: Byte = b.toByte() b       res18: kotlin.Int = 1 i       res19: kotlin.Byte = 1 큰 자

코틀린 변수정의

변수정의  자료형은 저장되는 데이터의 크기를 구분하는 기준이 되므로 변수를 정의할 때 자료형을 함께 선언합니다. 그러나 코틀린의 경우 변수를 선언할 때 최초로 정된 값에 따라 자료형을 유추합니다. 이를 변수의 초기화(initialiation)이라고 합니다. 코틀린은 이 초기값에 따라 변수의 자료형을 유추하므로 자료형의 지정은 생략가능합니다. 그러므로 변수 할당시 초기값 할당 즉,변수의 초기화는 반드시 이루어져야 합니다. 코틀린에서 변수를 선언하는 방법은 두 가지로 구분됩니다. 즉, 키워드 val, var을 사용하여 변수를 지정하는데 그 내용은 다음과 같습니다. val: 한번만 할당 가능한(읽기전용) 로컬 변수정의 키워드 (변수를 재이용할 수 없음) val 변수명:자료형 = 값 var: 변경가능한 변수 정의 키워드 (변수를 재이용할 수 있음) var 변수명:자료형 = 값 val a:Int=1  // 즉시 할당 a 1 val b=2 // “Int” 타입으로 추론 b 2 var x=5//'int'타입으로 추론 x +=1 x 6 val에 의한 변수는 정의 후에 값을 할당할 수 있습니다. val x=3 var re:String if (x%2==0){re="짝수"} else {re="홀수"} re       홀수 위의 경우 조건문을 직접 변수의 초기값으로 지정할 수 있습니다. 즉, 표현에 의해 값이 생성되는 expression(식)은 변수의 값으로 직접 할당할 수 있습니다. val x=3 var re:String =if (x%2==0){"짝수"}else {"홀수"} re       홀수 val에 의한 변수정의에서 그 값은 변할 수 없다고 했습니다. 그러나 수정할 수 없는 것은 값이라기 보다는 객체입니다. val arr=arrayOf(1, 2,3) f

코틀린 자료형

자료의 참조방식 코틀린에서 코딩 시 객체에 자료를 입력하는 것은 기본적으로 참조를 기본으로 합니다. 그러나 코드의 컴파일 단계에서는 기본형으로 대체됩니다. 기본형(Primitive data type)과 참조형(Reference Data Type)을 어떤 차이가 있을까요? 기본형: 프로그램밍 언어에 내장되어 있는 형태로서 int, long, Double, Float등 참조형: String, Date와 같이 기본형을 조합하여 생성한 자료형태 그러나 위에서 소개한 것과 같이 코틀린은 코딩시 모든 자료를 참조형식으로 사용하지만 컴파일 단계에서 int, long, Double, float등은 기본형으로 전환되므로 이 참조형의 최적화를 별도로 고려할 필요는 없습니다. 자료형이 저장되는 메모리는 임시메모리인 stack과 동적메모리인 heap으로 구분됩니다. 참조 방식의 경우 생성된 객체의 값들은 heap에 저장되고 stack에는 그 값들이 저장된 주소만이 존재합니다. 그러므로 그 객체를 호출할 경우 값은 heap에 있는 부분을 호출하여 나타내게 됩니다. x=3 이라는 객체를 선언하면 임시메모리인 stack에 이 객체를 위한 자리가 마련되지만 값(실제객체) 3은 동적메모리인 heap에 저장되고 stack에는 heap에 저장된 그 값의 주소가 저장됩니다. 그러므로 객체가 사용될 경우는 주소에 위치한 값을 소환하여 사용합니다. 코틀린에서 객체의 선언은 위와 같은 참조형식을 취하지만 일단 그 객체가 컴파일 되면 기본형으로 변환되어 값을 직접이용하게 됩니다. 결과적으로 자료의 저장 방식을 고려할 필요는 없습니다. 자료형의 종류  정수형 양수, 음수, 0을 포함하며 부호가 있는 자료와 부호가 없는 자료로 구분합니다. 형식 자료형 크기 범위 부호있는 정수형 Long 8바이트(64비트) -2 63 ~ 2 63 -1 Int 4바이트(32비트) -2 31 ~ 2 31 -1 Short 2바이트(1

Sequence- kotlin

for loop문에서 객체를 반복할 경우 각 단계마다 그 결과를 반환합니다. val lst=listOf("rock","pagoda","plastic plant","alligator","flowerpot") for(i in lst){println(i)}      rock      pagoda      plastic plant      alligator     flowerpot 위와 같이 for 문으로 하나의 객체에 여러 원소를 반복하여 제출할 수 있는  객체를 iterable 객체(반복자)라고 합니다. List, Map등의 collection이나 range 객체는 이러한 반복자로 사용할 수 있습니다. 이와 유사한 객체로 코틀린 표준라이브러리에서 제공하는 시퀀스(Sequence )가 있습니다. 이 객체의 여러단계 처리는 전체 단계가 처리된 결과가 요구될 때 실제 연산이 일어납니다. 동작 수행의 순서 또한 다릅니다. Sequence는 각각 하나의 원소(element)에 대해 모든 단계를 수행한다. Iterable 은 전체 collection 에 대해 각 단계의 수행을 완료하고 다음 단계로 넘어간다. 따라서, sequence 는 중간 단계의 결과에 대한 처리를 피할 수 있게 해주며, collection 전체 처리에 대한 수행 성능이 향상된다. 하지만 크기가 작은 collection 이나 단순한 연산 동작에 대해서는 오히려 불필요한 오버헤드가 생길 수 있다. 그러므로 어느 경우에 Sequence 나 Iterable 중에 적절한 선택을 해야 한다. 다음은 iterable의 예입니다. String 객체.split: 문자열을 메소드에 전달한 인수를 기준으로 분리합니다. val words1 = "The quick brown fox jumps over the lazy dog" words1.split(" "