기본 콘텐츠로 건너뛰기

라벨이 numpy인 게시물 표시

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

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

결측치와 무한값찾기

내용 결측값과 무한값 생성 결측값과 무한값 결정 무한값 결정 Nan 결정 결측치와 무한값찾기 이터 처리 과정에서 누락된 값이나 계산과정에서 무한값을 얻게되는 경우가 있는데 이러한 값들은 이어진 계산과정에서 에러를 발생하는 경우가 많습니다. 그러므로 분석 전 또는 분석 동안 이들의 처리 과정이 중요하며 그 일환으로 먼저 그들의 인식과정을 먼저 살펴봅니다. 결측값과 무한값 생성 numpy의 속성값인 np.nan 으로 결측치(nan(Not Any Number))를 인위적으로 생성할 수 있습니다.또한 무한값은 내장함수인 float() 를 사용하여 생성할 수 있습니다. import math import numpy as np import pandas as pd x=np.random.rand(20) x array([0.44245459, 0.8178457 , 0.19687037, 0.54456459, 0.2971784 , 0.9188978 , 0.37880048, 0.10845443, 0.84552398, 0.73500799, 0.8996776 , 0.38032666, 0.15925506, 0.70421241, 0.46348431, 0.76245393, 0.25619259, 0.92892586, 0.11489276, 0.51422256]) # 특정한 요소들을 nan 또는 infinity로 치환 x[3]=np.nan #nan x[9]=np.nan x[7]=float('inf') #inifinity x[16]=float('-inf') #-infintiy np.around(x, 4) array([0.4425, 0.8178, 0.1969, nan , 0.2972, 0.9189, 0.3788, inf , 0.8455, nan , 0.8997, 0.3803, 0.1593, 0.7042, 0.4635, 0.7625,

배열(Numpy. array)

내용 기본 배열의 생성 배열의 차원과 모양 배열 생성을 위한 다른 함수 랜덤수 생성을 위한 함수들 배열 객체의 자료형 배열 객체의 인덱스 배열의 차원 수정 배열 결합(concatenate) 배열의 분할 배열(Numpy.array) 배열은 ndarray이라고도 하는데 이 용어는 N-dimensional array의 약어로서 여러개의 값들을 구조적으로 나타낼 수 있는 numpy 라이브러리 기본 데이터형입니다. 다음과 같은 특성을 가집니다. 리터럴(literal, row data)에 대한 정보, 요소(element)를 찾는 방법 및 요소를 해석하는 방법을 포함합니다. 배열 내에 각 요소들은 인덱스(index)라고 하는 음이 아닌 정수형태의 특정한 번호를 가집니다. 모든 요소는 동일한 유형이어야 합니다. 배열은 여러 차원으로 구성할 수 있으며 차원을 ndim속성으로 확인할 수 있습니다. 배열의 모양은 각 차원의 수를 표시한 것으로 shape속성으로 확인 할 수 있습니다. 기본 배열의 생성 배열의 차원과 모양 numpy 배열 객체의 생성은 기본적으로 np.array() 함수를 사용합니다. 자료형은 dtype 등의 속성을 사용하여 확인 또는 지정 할 수 있습니다. np.array(객체, dtype=None) 인수는 리스트형입니다. 인수 dtype에 형식을 지정하여 각 요소들의 자료형을 지정할 수 있습니다. 다음은 1차원 배열을 생성하기 위해 리스트 형식인 [1, 2, 3]을 np.array() 함수에 전달한 것입니다. import numpy as np a = np.array([1, 2, 3]) a #(1) array([1, 2, 3]) print(a) #(2) [1 2 3] 위 코드 (1)과 같이 객체를 반환하면 배열(array)가 명시되는데 반해 다음 코드(2)와 같이 print()함수에 의한 출력은 단지 내용만을 반환합니다. 배열을 생성과 동시에 각 요소는 음이

행렬 객체 만들기

python에서 행렬 객체를 생성하기 위해서는 numpy, pandas 모듈을 사용합니다. numpy 모듈에서 array()함수는 다른 행렬 객체를 생성하는 대부분 함수의 기반이 되는 함수입니다. 이 함수는 기본적으로 자료들의 순서가 자동으로 정해지는 배열을 생성하는 함수입니다. 그러므로데이터의 위치가 행 또는 열만이 표시되는 벡터, 여러행과 열을 가지는 행렬 모두 생성할 수 있습니다.  >>> import numpy as np >>> x=np.array([1,2,3]);x array([1, 2, 3]) 위 객체 x는 1행 3열의 행렬과 같이 보이지만 python은 3행인 열벡터로 인식합니다. 다음에 사용한 np객체.shape 는 객체의 차원을 알려주는 속성입니다. 이 함수를 적용하여 객체 x의 차원을 나타내면 다음과 같습니다. 속성: 클래스 내에서 객체의 생성하면 그 클래스의 기본 성질을 가집니다. 이러한 특성은 클래스 객체의 속성으로 나타낼 수 있습니다. 함수와 유사하지만 전달할 인수값이 없습니다. >>> x.shape (3,) 위의 결과는 열 표시가 없습니다. 즉, 객체 x는 3행으로 이루어진 열벡터임을 나타냅니다. python에서는 벡터와 행렬을 구분하고 또한 벡터는 1열로 이루어진 열벡터 1행으로 이루어진 행벡터로 구분할 수 있습니다. python에서는 모든 벡터는 열벡터로 취급합니다. 그러므로 x의 경우 열표시가 없습니다. python에서 벡터와 행렬을 구분한다는 것은 매우 중요합니다. 벡터, 행렬 연산의 경우 기본적으로 차원을 조정해야 하기 때문입니다. 예를 들어 행과 열이 바꾸는 것을 전치(transpose)라고 하며 객체.T 로 실행됩니다. 그러나 벡터일 경우는 실행되지 않습니다. >>> x1=x.T;x1 array([1, 2, 3]) >>> x1.shape (3,) 위 객체 x를 행렬로 변경하여 전치해 보면 다른 결과를 얻을 수

선형독립과 기저

내용 기저 벡터 표준기저(Standard basis) 선형 독립과 기저 기저(Basis) 기저는 선형 결합에서 선형 독립 을 이루는 벡터들입니다. 즉, 선형 결합의 결과 벡터를 생성하기 위한 기본이 되는 벡터를 의미합니다. 벡터들의 집합을 벡터 공간이라고 하였습니다. 그 공간에서 두 개 이상의 벡터는 선형 결합으로 그 공간 내에 존재하는 부분 공간 을 만들어 낼 수 있습니다. 이러한 공간의 기본은 선형 독립인 벡터들입니다. 선형 독립 시스템에서의 결과 벡터는 이 기저 벡터들의 방향, 차원 등의 특성을 가진 형태로 그 벡터 공간의 부분 공간이 됩니다. 즉, 기저는 그 부분 공간을 나타내기 위한 기본 축이 될 수 있습니다. 이러한 기저 벡터들은 다음 조건을 만족해야 합니다. 기저 벡터 벡터 H가 벡터 공간 B(b 1 , b 2 , … , b p )의 부분공간인 경우 B = {b 1 , b 2 , … , b p }는 H의 기저(basis)입니다. ⇔ H와 B는 선형 독립: 벡터 공간에서 기저는 선형 독립인 벡터들입니다. ⇔ H = Span{b 1 , b 2 , … , b p } 즉, 집합 B의 벡터들은 H의 부분 공간이며 선형결합이 성립됩니다. 결과적으로 벡터 B 집합은 H(부분공간)의 스판이 되며 B의 선형 결합에 의한 결과 벡터가 H가 된다는 것을 의미합니다. 또한 이 선형결합은 독립이어야 하므로 자명한 해(유일해) 를 가져야 합니다. 표준기저(Standard basis) 항등 행렬의 각 열 벡터는 동일한 차원의 모든 벡터에 대해 스판이며 선형 독립입니다. 예를 들어 3차원의 항등 행렬의 경우 그 행렬에 의한 동차 선형 결합 의 해집합은 0벡터입니다. 즉, 항등 행렬의 선형 결합은 자명한 해를 가지므로 선형 독립입니다. 또한 이 시스템의 표준 행렬 은 정방 행렬이고 독립이기 때문에 0이 아닌 행렬식을 가집니다. import numpy as np import numpy.linalg as

벡터 공간(vector space)과 부분공간

내용 벡터공간에서의 연산법칙 부분공간 부분공간의 차원 기저벡터(basis vector) 부분공간의 차원 벡터공간 이 글은 선형시스템 또는 선형결합 에 대한 지식이 필요합니다. 벡터들과 스칼라간의 연산에 의해 선형결합의 성립될 수 있으며 그 결과벡터는 연산에 사용된 벡터들이 존재하는 공간의 부분으로 존재합니다. 이렇게 벡터들이 존재하는 공간을 벡터 공간 (Vector space)이라고 합니다. 선형결합 에 의한 벡터 공간에서 벡터와 스칼라 간에 다음과 같은 다양한 연산 법칙이 성립됩니다. 벡터 공간에서의 연산 법칙 u, v ∈ Vector → u+v ∈ Vector u, v가 모두 벡터이면 그들의 합은 벡터(u+v) α ∈ scalar, u ∈ Vector → ;αu ∈ Vector α가 스칼라(C)이고 u가 벡터라면 이 둘의 곱인 αu는 벡터 u + v = v + u 벡터들의 합은 교환법칙 성립 u + (v + w) = ( u + v) + w 벡터들의 합은 결합법칙 성립 모든 요소가 0인 0벡터(zero vector)가 존재 u가 벡터이고 -u 역시 벡터라면 u + (-u) = 0 α, β ∈ scalar, u ∈ Vector → α(βu) = (α β) u 스칼라 배수 법칙 성립 α ∈ scalar and u ∈ Vector → α(u + v) = α u + α v 스칼라와 벡터의 곱에서 분배법칙이 성립 α, β ∈ scalar u ∈ Vector → (α + β)u = α u + β u 두 개의 스칼라와 한 개의 벡터사이에 분배법칙이 성립 u ∈ V → 1·u = u 부분공간 일반적으로 벡터 공간 (Vector sp

영공간(Nullspace)과 열공간(Column space)

내용 영공간과 열공간 영공간(Null Space) 영공간 영공간의 수 열공간 (Column space) 열공간(column space) 선형결합 과 선형독립과 종속 에 대한 이해가 필요합니다. 영공간(Nullspace)과 열공간(Column space) 영공간과 열공간 행렬 A에 대해 Ax=0을 만족하는 관계를 선형 결합이라고 하며 이 선형 결합에는 선형 종속과 선형독립으로 구분합니다. 선형독립인 경우 이 식의 해는 자명한 해로 유일한 해 집합을, 선형종속인 경우 1개 이상의 다양한 해집합을 가집니다. 이러한 해집합의 기저 (basis)를 영공간 (Nullspace)과 열공간 (Column space)이라 합니다. 영공간은 선형종속 관계의 다양한 해들 중의 기저 벡터, 열공간은 선형독립이 성립되는 기저 벡터들을 의미합니다. 이 관계에서 의하면 영공간 역시 다양한 해집합들로부터 유도되는 열공간이라 할 수 있습니다. 영공간(Null Space) m×n 형태의 2차원 행렬 A의 영공간 (Nul A)은 동차 선형 시스템(Ax=0)의 모든 해집합의 기저입니다. 그러므로 영공간은 기본적으로 0벡터를 포함합니다. 영공간 영공간은 동차 시스템의 해 집합의 기저입니다. 벡터 u가 행렬 A의 영 공간에 포함 여부를 결정한다는 것은 Ax=0의 동차 선형 시스템에서 변수 벡터 x를 벡터 u로 치환할 경우 성립하는지를 결정하는 것입니다. import numpy as np import numpy.linalg as la import sympy as spM A=np.array([[1,-3,-2],[-5, 9, 1]]); AM array([[ 1, -3, -2], [-5, 9, 1]]) u=np.array([5,3,-2]).reshape(-1,1); uM array([[ 5], [ 3],

선형독립과 선형종속

내용 가역적 그리고 독립 선형 독립과 종속 정리 선형 독립과 선형 종속 $\mathbb{R}$ 공간의 벡터들$(v_1, v_2, \cdots, v_p) $와 스칼라$(c_1, c_2,\cdots, c_p)$의 동차 선형 결합은 식 1과 같이 행렬 방정식의 형태로 나타낼 수 있습니다. $$\begin{align}\tag{1} \begin{matrix}c_1v_1 + c_2v_2 + \cdots + c_pv_p= 0\\\Downarrow \\\begin{matrix}\begin{bmatrix}v_{11}& v_{12}& \cdots&v_{1p}\\ v_{21}& v_{22}& \cdots &v_{2p}\\ \vdots &\vdots &\ddots & \vdots \\v_{n1}& v_{n2}& \cdots &v_{np} \end{bmatrix} \begin{bmatrix}c_1\\c_2\\ \vdots \\c_p \end{bmatrix}=\begin{bmatrix}0\\0\\\vdots \\0 \end{bmatrix} \end{matrix} \end{matrix} \end{align}$$ 동차 선형 결합이 자명한 해(trivial solution) 를 갖는다면 선형 독립 (linear independent)라고 하고 위 식을 만족시키기 위한 자명하지 않은 해(nontrivial solution)을 갖는다면 선형 종속 (linear dependent)이라고 합니다. 예)   다음시스템의 선형 독립성을 결정합니다. $$\begin{aligned} &x_1 + 4x_2 + 2x_3 = 0\\ &2x_1 + 5x_2 + x_3 = 0\\ &3x_1 + 6x_2 = 0 \end{aligned}$$ import numpy as np import numpy.linalg as la import sympy as sp import mat

선형시스템(Linear System): 선형결합

내용 선형결합(Linear Combination) 스판 (Span) 모순된 시스템 동차 선형결합(Homogeneous Linear Combination) 선형시스템(Linear System) 선형결합(Linear Combination) 벡터 집합 R = {v 1 , v 2 , …, v n } 즉, 행렬 R과 스칼라집합 c={c 1 , c 2 , …, c n } 사이에 식 1과 같이 y가 정의된다면 그 식을 행렬 R과 스칼라(가중치, weight)-c-와의 선형 결합 (linear combination)이라고 합니다. $$\begin{align}\tag{1} y &= c_1v_1 + c_2v_2 + \cdots + c_nv_n\\ &= \begin{bmatrix}c_1&c_2&\cdots&c_n\end{bmatrix}\begin{bmatrix}v_1\\v_2\\\vdots\\v_n\end{bmatrix}\\ &= CV \end{align}$$ 식 1에서 C는 선형결합의 계수행렬로 표준행렬(standard matrix) , V는 변수벡터 또는 행렬을 나타냅니다. 예를 들어 다음 변수 벡터인 w=<x, y>와 세 벡터 a 1 , a 2 , b 사이에 다음의 관계가 성립하면 선형 결합이라고 합니다. b = x·a 1 + y·a 2 import numpy as np import numpy.linalg as la import sympy as sp import matplotlib.pyplot as plt a1=np.array([1,-2,-5]).reshape(-1,1) a2=np.array([2,5,6]).reshape(-1,1) b=np.array([7,4,-3]).reshape(-1,1) A=np.hstack([a1, a2]) A array([[ 1, 2], [-2, 5], [-5, 6]]) 위 결