기본 콘텐츠로 건너뛰기

8월, 2019의 게시물 표시

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

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

Palindrome(회문) 결정하기

palindrome(회문) 순서를 역으로 해도 동일한 단어, 숫자, 문장을 나타내는 객체  첫번째와 마지막 원소가 동일    안쪽으로 하나씩 좁혔을 때 동일함 palindrome을 판단하기 위한 프로그램 def isPalindromeS(x):     target=str(x)     is_palindrome=True     for i in range(len(target)//2):         if target[i] != target[-1 -i]:             is_palindrome=False             break     return(is_palindrome) x=[121, "level", 12314] [isPalindromeS(i) for i in x] [True, True, False] 지정한 범위에서 palindrome를 발견 re=np.array([]) for i in range(10, 1001):     if isPalindromeS(i):         re=np.append(re, i) re array([ 11.,  22.,  33.,  44.,  55.,  66.,  77.,  88.,  99., 101., 111.,        121., 131., 141., 151., 161., 171., 181., 191., 202., 212., 222.,        232., 242., 252., 262., 272., 282., 292., 303., 313., 323., 333.,        343., 353., 363., 373., 383., 393., 404., 414., 424., 434., 444.,        454., 464., 474., 484., 494., 505., 515., 525., 535., 545., 555.,        565., 575., 585., 595., 606., 616., 626., 636., 646., 656.

솟수와 소인수 (Prime, Prime Factor)

솟수 1과 자신외의 값으로 나누어질 수 없는 수 def isPrimeS(x):     if x<=1:         return False     for i in range(2, x):         if x % i ==0:             return False     return True isPrimeS(7) True 위 프로그램을 사용하여 [1, 100] 사이의 솟수는 다음과 같습니다. re=np.array([]) for i in range(1, 101):     if isPrimeS(i)==True:         re=np.append(re, i) re array([ 2.,  3.,  5.,  7., 11., 13., 17., 19., 23., 29., 31., 37., 41.,        43., 47., 53., 59., 61., 67., 71., 73., 79., 83., 89., 97.]) 소인수  (Prime Factor) 소인수: 어떤 수를 얻기 위해 곱해지는 수들중 솟수들 6=2×3의 경우 2, 3은 6의 인수(factor) Prime Factorization(소인수 분해): 어떤수를 만들기 곱해진 수들 중에 소수들 12=2×6  12의 인수들은 2, 6으로 나타낼 수 있지만 6은 소수가 아니다. 즉, 별도의 인수를 가진다. 6=2×3 그러므로 12=2×2×3=2 2 *3 결과적으로 12의 소인수는 2, 3 입니다. 인수를 찾는 프로그램    factorS(x) 와 솟수인지를 검사하는 프로그램 isPrimeS() 를 사용하여 작성할 수 있습니다.  x=factorS(13195) re=np.array([]) for i in x:     if isPrimeS(i):         re=np.append(re, i) re array([ 5.,  7., 13., 29.]) 위 프로그램을 함수로 작성하면 다음과 같습니다. def primeFacto

피보나치 수열 생성(Fibonacci Sequence)

피보나치 수열은 앞의 두 수를 더하여 다음 수를 생성하는 수열로서 다음과 같이 코드를 작성할 수 있습니다. def fiboS(n):     #n=피보나치 수열의 갯수     fiboseq=np.array([1, 2])     for i in range(2, n+1):         fiboseq=np.append(fiboseq, fiboseq[i-2]+fiboseq[i-1])     return(fiboseq) fiboS(10) array([  1,   2,   3,   5,   8,  13,  21,  34,  55,  89, 144]) 위 결과는 numpy array로서 이들의 합을 위해서는 np객체.sum()을 적용합니다. fiboS(10).sum() 375 위 프로그램의 n은 수열의 갯수로서 정수입니다. 이것은 range() 함수의 인수이기 때문입니다. 정수형은 자릿수등의 한계가 존재하므로 얼마 이상의 값에서는 예기치 못한 값을 반환합니다. fiboS(50) array([          1,           2,           3,           5,           8,                 13,          21,          34,          55,          89,                ...          267914296,   433494437,   701408733,  1134903170,  1836311903,        -1323752223,   512559680,  -811192543,  -298632863, -1109825406,        -1408458269]) 그러므로 피보나치 수열을 생성할 경우 원소의 갯수가 아닌 그 합을 기준으로 하여 프로그램을 수정할 수 있습니다. 수정된 프로그램 역시 자료형의 크기에 한계가 있으므로 첫번째 프로그램보다 약간 개선된 결과를 보이지만 한계가 존재합니다. def fiboS(n):    

elementary function_sympy

Elementary function(초등함수) 대수함수와 지수 함수, 로그함수에 사칙연산 및 함수의 합성으로 만들수 있는 단변수 함수(univariate function)입니다. complex number(복소수) re(객체): 실수영역을 나타냄 im(객체): 허수영역을 나타냄 객체.as_real_imag(): (실수부분, 허수부분)의 쌍을 튜플로 반환 cojugate(객체): 켤레복소수를 반환 >>> type(E) #E=exp를 나타냄 sympy.core.numbers.Exp1 >>> 2*E 2*E >>> N(2*E) 5.43656365691809 >>> re(2*E) 2*E >>> type(I) #복소수의 허수 단위(numpy 등에서는  j로 나타냄)  sympy.core.numbers.ImaginaryUnit >>> eq=17+3*I >>> re(eq) #실수부분을 나타냄  17 >>> im(eq) #허수부분을 나타냄  3 >>> eq.as_real_imag() (17, 3) >>> conjugate(eq) 17 - 3*I sign() 식의 부호를 반환합니다. 식이 양수 : 1 식이 음수: -1 식이 0 : 0 복소수에서 허수부분의 부호는 다음과 같습니다. im(식) >0: I im(식) <0: -I >>> sign(-8) -1 >>> sign(0) 0 >>> sign(10) 1 >>> eq 17 + 3*I >>> sign(im(eq)) 1 Abs(): 절대값을 반환합니다.

Rolling Dice

import numpy as np mn = 1 mx = 7 ​ roll_again = 'yes' ​ while roll_again == "yes" or roll_again == "y" : print ( "Rolling the dice" ) print ( "The values are " ) print ( np . random . randint ( mn , mx )) roll_again = input ( "Roll the dices again?" ) Rolling the dice The values are 1 Roll the dices again?y Rolling the dice The values are 2 Roll the dices again?y Rolling the dice The values are 2 Roll the dices again?y Rolling the dice The values are 4 Roll the dices again?y Rolling the dice The values are 2 Roll the dices again?n