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은 열단위 즉, 행 방향으
행렬 A, B, C, 항등행렬 I, 스칼라 r, s 사이에서의 연산
A+B=B+A, (A+B)+C=A+(B+C), A+0=A
r(A+B)=rA+rB, (r+s)A=rA+sA, r(sA)=(rs)A
A(BC) =(AB)C, A(B+C)=AB+AC, (B+C)A=BA+CA
r(AB)=(rA)B=A(rC), IA=AI=A
>>> import numpy as np
>>> import scipy.linalg as LA
>>> from sympy import *
1.행렬 A,B,C에서의 연산
>>> A=np.mat("4,0,5;-1,3,2");A
matrix([[ 4, 0, 5],
[-1, 3, 2]])
>>> B=np.mat("1,1,1; 3,5,7");B
matrix([[1, 1, 1],
[3, 5, 7]])
>>> C=np.mat("2,-3; 0,1");C
matrix([[ 2, -3],
[ 0, 1]])
>>> A+B
matrix([[5, 1, 6],
[2, 8, 9]])
>>> try:
... A+C
... except:
... print("행렬의 사칙연산은 동일한 차원에서 실행됩니다.")
...
행렬의 사칙연산은 동일한 차원에서 실행됩니다.
>>> 2*B
matrix([[ 2, 2, 2],
[ 6, 10, 14]])
>>> A-2*B
matrix([[ 2, -2, 3],
[ -7, -7, -12]])
행렬곱
두 행렬 m$\times$n차원의 A와 n$\times$p차원의 B사이의 행렬곱
AB=A[$b_1, b_2, ..., b_p$]=[$Ab_1, Ab_2, ..., Ab_p$]
즉, 앞 행렬의 열의 수와 뒤 행렬의 행의 수가 같아야 합니다.
2.
>>> A=np.mat("2,3; 1, -5");A
matrix([[ 2, 3],
[ 1, -5]])
>>> B=np.mat("4,3,6; 1, -2, 3");B
matrix([[ 4, 3, 6],
[ 1, -2, 3]])
>>> A.shape
(2, 2)
>>> B.shape
(2, 3)
>>> AB=np.dot(A,B)
>>> AB
matrix([[11, 0, 21],
[-1, 13, -9]])
행렬곱에서는 교환법칙이 성립되지 않습니다.
3.
>>> A=np.mat("5,1; 3,-2");A
matrix([[ 5, 1],
[ 3, -2]])
>>> B=np.mat("2,0; 4, 3");B
matrix([[2, 0],
[4, 3]])
>>> AB=np.dot(A,B); AB
matrix([[14, 3],
[-2, -6]])
>>> BA=np.dot(B,A); BA
matrix([[10, 2],
[29, -2]])
>>> AB==BA
matrix([[False, False],
[False, False]])
전치행렬의 특성은 다음과 같습니다.
$$(A^T)^T=A,\; (A+B)^T=A^T+B^T,\;(rA)^T=rA^T, \; (AB)^T=B^TA^T$$
>>> A=np.mat("5,1; 3,-2");A
matrix([[ 5, 1],
[ 3, -2]])
>>> B=np.mat("2,0; 4, 3");B
matrix([[2, 0],
[4, 3]])
>>> A_T=A.T; A_T
matrix([[ 5, 3],
[ 1, -2]])
>>> A_T.T
matrix([[ 5, 1],
[ 3, -2]])
>>> A.T+B.T
matrix([[7, 7],
[1, 1]])
>>> (A+B).T
matrix([[7, 7],
[1, 1]])
>>> np.dot(A,B).T
matrix([[14, -2],
[ 3, -6]])
>>> np.dot(B.T, A.T)
matrix([[14, -2],
[ 3, -6]])
4. 행렬 A 와의 행렬곱으로 0행렬이 되는 2$\times$2 차원의 행렬 B?
$$A=\left[\begin{array}{rr}3&-6\\2&4 \end{array}\right], \; B=\left[\begin{array}{rr}a&-b\\c&d\end{array}\right]$$
>>> A=Matrix([[3,-6],[2,4]]);A
Matrix([
[3, -6],
[2, 4]])
>>> a,b,c,d=symbols("a,b,c,d")
>>> B=Matrix([[a,b], [c,d]]); B
Matrix([
[a, b],
[c, d]])
>>> A*B
Matrix([
[3*a - 6*c, 3*b - 6*d],
[2*a + 4*c, 2*b + 4*d]])
$$\left[\begin{array}{rr}3a-6c&3b-6d\\2a+4c&2b+4d\end{array}\right]=\left[\begin{array}{rr}0&0\\0&0\end{array}\right]$$
위의 결과에서 각행렬의 열별로 다음과 같이 나타낼 수 있습니다.
$$\left[\begin{array}{r}3a-6c\\2a+4c\end{array}\right]=\left[\begin{array}{r}0\\0\end{array}\right] \Rightarrow \left[\begin{array}{r}3&-6\\2&+4\end{array}\right] \left[\begin{array}{r}a\\c\end{array}\right]=\left[\begin{array}{r}0\\0\end{array}\right]$$
$$ \left[\begin{array}{r}3b-6d\\2b+4d\end{array}\right]=\left[\begin{array}{r}0\\0\end{array}\right] \Rightarrow \left[\begin{array}{r}3&-6\\2&+4\end{array}\right] \left[\begin{array}{r}b\\d\end{array}\right]=\left[\begin{array}{r}0\\0\end{array}\right]$$
>>> au=coef.row_join(const)
>>> coef=Matrix([[3,-6],[2,4]]);coef
Matrix([
[3, -6],
[2, 4]])
>>> const=Matrix(2,1,[0,0]);const
Matrix([
[0],
[0]])
>>> au=coef.row_join(const);au
Matrix([
[3, -6, 0],
[2, 4, 0]])
>>> au.rref()
(Matrix([
[1, 0, 0],
[0, 1, 0]]), (0, 1))
B 는 0행렬
A+B=B+A, (A+B)+C=A+(B+C), A+0=A
r(A+B)=rA+rB, (r+s)A=rA+sA, r(sA)=(rs)A
A(BC) =(AB)C, A(B+C)=AB+AC, (B+C)A=BA+CA
r(AB)=(rA)B=A(rC), IA=AI=A
>>> import numpy as np
>>> import scipy.linalg as LA
>>> from sympy import *
1.행렬 A,B,C에서의 연산
>>> A=np.mat("4,0,5;-1,3,2");A
matrix([[ 4, 0, 5],
[-1, 3, 2]])
>>> B=np.mat("1,1,1; 3,5,7");B
matrix([[1, 1, 1],
[3, 5, 7]])
>>> C=np.mat("2,-3; 0,1");C
matrix([[ 2, -3],
[ 0, 1]])
>>> A+B
matrix([[5, 1, 6],
[2, 8, 9]])
>>> try:
... A+C
... except:
... print("행렬의 사칙연산은 동일한 차원에서 실행됩니다.")
...
행렬의 사칙연산은 동일한 차원에서 실행됩니다.
>>> 2*B
matrix([[ 2, 2, 2],
[ 6, 10, 14]])
>>> A-2*B
matrix([[ 2, -2, 3],
[ -7, -7, -12]])
행렬곱
두 행렬 m$\times$n차원의 A와 n$\times$p차원의 B사이의 행렬곱
AB=A[$b_1, b_2, ..., b_p$]=[$Ab_1, Ab_2, ..., Ab_p$]
즉, 앞 행렬의 열의 수와 뒤 행렬의 행의 수가 같아야 합니다.
2.
>>> A=np.mat("2,3; 1, -5");A
matrix([[ 2, 3],
[ 1, -5]])
>>> B=np.mat("4,3,6; 1, -2, 3");B
matrix([[ 4, 3, 6],
[ 1, -2, 3]])
>>> A.shape
(2, 2)
>>> B.shape
(2, 3)
>>> AB=np.dot(A,B)
>>> AB
matrix([[11, 0, 21],
[-1, 13, -9]])
행렬곱에서는 교환법칙이 성립되지 않습니다.
3.
>>> A=np.mat("5,1; 3,-2");A
matrix([[ 5, 1],
[ 3, -2]])
>>> B=np.mat("2,0; 4, 3");B
matrix([[2, 0],
[4, 3]])
>>> AB=np.dot(A,B); AB
matrix([[14, 3],
[-2, -6]])
>>> BA=np.dot(B,A); BA
matrix([[10, 2],
[29, -2]])
>>> AB==BA
matrix([[False, False],
[False, False]])
전치행렬의 특성은 다음과 같습니다.
$$(A^T)^T=A,\; (A+B)^T=A^T+B^T,\;(rA)^T=rA^T, \; (AB)^T=B^TA^T$$
>>> A=np.mat("5,1; 3,-2");A
matrix([[ 5, 1],
[ 3, -2]])
>>> B=np.mat("2,0; 4, 3");B
matrix([[2, 0],
[4, 3]])
>>> A_T=A.T; A_T
matrix([[ 5, 3],
[ 1, -2]])
>>> A_T.T
matrix([[ 5, 1],
[ 3, -2]])
>>> A.T+B.T
matrix([[7, 7],
[1, 1]])
>>> (A+B).T
matrix([[7, 7],
[1, 1]])
>>> np.dot(A,B).T
matrix([[14, -2],
[ 3, -6]])
>>> np.dot(B.T, A.T)
matrix([[14, -2],
[ 3, -6]])
4. 행렬 A 와의 행렬곱으로 0행렬이 되는 2$\times$2 차원의 행렬 B?
$$A=\left[\begin{array}{rr}3&-6\\2&4 \end{array}\right], \; B=\left[\begin{array}{rr}a&-b\\c&d\end{array}\right]$$
>>> A=Matrix([[3,-6],[2,4]]);A
Matrix([
[3, -6],
[2, 4]])
>>> a,b,c,d=symbols("a,b,c,d")
>>> B=Matrix([[a,b], [c,d]]); B
Matrix([
[a, b],
[c, d]])
>>> A*B
Matrix([
[3*a - 6*c, 3*b - 6*d],
[2*a + 4*c, 2*b + 4*d]])
$$\left[\begin{array}{rr}3a-6c&3b-6d\\2a+4c&2b+4d\end{array}\right]=\left[\begin{array}{rr}0&0\\0&0\end{array}\right]$$
위의 결과에서 각행렬의 열별로 다음과 같이 나타낼 수 있습니다.
$$\left[\begin{array}{r}3a-6c\\2a+4c\end{array}\right]=\left[\begin{array}{r}0\\0\end{array}\right] \Rightarrow \left[\begin{array}{r}3&-6\\2&+4\end{array}\right] \left[\begin{array}{r}a\\c\end{array}\right]=\left[\begin{array}{r}0\\0\end{array}\right]$$
$$ \left[\begin{array}{r}3b-6d\\2b+4d\end{array}\right]=\left[\begin{array}{r}0\\0\end{array}\right] \Rightarrow \left[\begin{array}{r}3&-6\\2&+4\end{array}\right] \left[\begin{array}{r}b\\d\end{array}\right]=\left[\begin{array}{r}0\\0\end{array}\right]$$
>>> au=coef.row_join(const)
>>> coef=Matrix([[3,-6],[2,4]]);coef
Matrix([
[3, -6],
[2, 4]])
>>> const=Matrix(2,1,[0,0]);const
Matrix([
[0],
[0]])
>>> au=coef.row_join(const);au
Matrix([
[3, -6, 0],
[2, 4, 0]])
>>> au.rref()
(Matrix([
[1, 0, 0],
[0, 1, 0]]), (0, 1))
B 는 0행렬
댓글
댓글 쓰기