본문 바로가기

Python/Python 용어 정리

(12)
고유값(eigenvalue), 고유벡터(eigenvector) 의 정의 정방행렬 A에 대하여 Ax = λx (상수 λ) 가 성립하는 0이 아닌 벡터 x가 존재할 때 상수 λ 를 행렬 A의 고유값 (eigenvalue), x 를 이에 대응하는 고유벡터 (eigenvector) 라고 합니다. 행렬 A에 대한 고유값(eigenvalue) λ ("Lambda", "람다" 라고 읽음)은 특성값(characteristic value), 또는 잠정근(latent root) 라고도 합니다. (eigen은 '고유' 또는 '특성'을 뜻하는 독일어임. '아이겐'이라고 읽음) Ax = λx 를 만족하는 0이 아닌 고유벡터(eigenvector) x 는 특성벡터(characteristic vector) 라고도 합니다. 그리고 행렬 A의 모든 고유값의 집합을 A의 스펙트럼(spectrum) 이라고 ..
Norm, 노름 Norm Norm은 벡터의 길이 혹은 크기를 측정하는 방법(함수)입니다. Norm이 측정한 벡터의 크기는 원점에서 벡터 좌표까지의 거리 혹은 Magnitude라고 합니다 p는 Lorm의 차수를 의미합니다. p가 1이면 L1 Norm이고 p가 2이면 L2 Norm입니다. n은 대상 벡터의 요소 수입니다. Norm은 각 요소별로 요소 절대값을 p번 곱한 값의 합을 p 제곱근한 값입니다. 주로 사용되는 Norm은 L1 Norm과 L2 Norm, Maxium norm입니다. 이 3 가지 Norm에 대하여 살펴보겠습니다. L1 Norm L1 Norm은 p가 1인 norm입니다. L1 Norm 공식은 다음과 같습니다. L1 Norm은 다음과 같은 영역에서 사용됩니다. L1 Regularization Computer..
벡터란 무엇인가? 고등학교 때까지 "위치,속도, 힘 등과 같이 크기와 방향성을 갖는 물리량"이라고 배웠다. 그런데 프로그램을 하다보면 벡터라는 용어가 또 등장한다. 파이썬에서 데이터 처리를 할 때도 등장한다. 많은 경우 for loop를 돌려서 문제 해결한다. 1행부터 10,000 행의 데이터 셋이 있으면... 1행부터 for loop를 돌리면서 필요한 연산을 10,000 번 수행한다. 그런데, 이걸 한 방에 연산할 수 있으면 더 빠르지 않을까? 벡터를 사용하면 가능하다. 1억행의 데이터 셋이 있다면... 속도의 차이는 어머어마하지 않을까? 파이썬에서 벡터는 한 개 또는 그이상의 "스칼라" 값으로 구성된 튜플이다. 튜플은 (a,b,c)와 같이 표현된다. (리스트 [a,b,c]와는 다르게 값을 변경할 수 없다.) 즉, a,..
*args와 **kwargs 파이썬을 쓰면서 여러 가지 문서를 보다 보면 빠지지 않고 항상 나오는 것이 *args와 **kwargs이다. 이것들은 과연 무엇일까? 일단 단어 뜻부터 알아보자. args는 arguments(인자들)이란 뜻이고, kwargs는 keyword arguments(키워드 된 인자들)이란 뜻이다. 물론 keyword 말고도 named라고도 한다. *args는 positional argument, *kwargs는 keyword argument가 정식 명칭이며 중요한 점은 args와 kwargs는 그냥 관용적으로 사용하는 이름일 뿐 *p, **k와 같이 이름을 다르게 해도 상관없다. 그러면 이러한 것들은 어떻게 사용하는 것일까? def func1(arg1, arg2): print('arg1: {}'.format(a..