본문 바로가기

Python

(57)
고유값(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,..
Part03 Chapter.02 데이터 분석 라이브러리 02. Numpy array Numpy array Numpy array : numpy에서 사용되는 기본적인 자료구조. numpy array는 C언어의 array 구조와 동일한 개념입니다. (TMI : C array) numpy array는 파이썬 리스트와 비슷한 구조입니다. 하지만, 세부적인 특징이 많이 다릅니다. 선언한 이후에 크기 변경이 불가능합니다. 모든 원소의 데이터 타입이 동일해야 합니다. (homogeneous array) indexing으로 원소를 접근할 수 있습니다. 생성 후 assignment operator를 이용해서 원소의 update가 가능합니다. numpy가 제공하는 데이터 타입은 파이썬과 다릅니다. 수치와 관련된 데이터 타입이 대부분입니다. 원소의 크기(memory size)를 조절할..
Part 03 Chapter.02 데이터 분석 라이브러리 01. Numpy를 사용하는 이유 Numpy Numpy : Numerical computing with Python. 수치연산 및 벡터 연산에 최적화된 라이브러리. Numpy! https://numpy.org/ NumPy Powerful N-dimensional arrays Fast and versatile, the NumPy vectorization, indexing, and broadcasting concepts are the de-facto standards of array computing today. Numerical computing tools NumPy offers comprehensive mathematical functions, random number g numpy.org 2005년에 만들어졌으며, 100% 오픈소스입니..
Chapter.01 파이썬 프로그래밍-15. Class (실습) Python Class Python은 OOP 패러다임으로 구현된 언어입니다. Python에서 Class를 직접 구현하면서 개념을 익혀봅시다. # Notebook 이라는 사물을 클래스로 정의합니다. class Notebook(): def __init__(self, manufacturer, model, cpu_type, ram_size, ssd_size): self.manufacturer = manufacturer self.model = model self.cpu_type = cpu_type self.ram_size = ram_size self.ssd_size = ssd_size # 클래스의 생성자(constructor)를 불러와봅니다. notebook = Notebook("Levono","Thinkbook..
Part03. Chapter.01 파이썬 프로그래밍-14. Class Class : OOP에서 구현하려는 개념을 추상화한 코드 템플릿. Class를 이용해서 구현하려는 개념을 객체(object)의 형태로 찍어낼 수 있습니다. 구현하려는 대상의 특성을 Class variable로, 대상이 수행해야 하는 일을 Class method로 구현해야 합니다. Constructor(생성자)를 통해서 객체를 찍어내는 틀을 정의할 수 있습니다 Python Class example class Human(superclass): 상속을 받고 싶을 때, 상속받을 클래스 이름을 파라미터로 지정. def __init__(self, name, weight): Constructor(생성자) self.name = name self.weight = weight ... def gain_weight(self,..
파이썬 기초 재 복습 (자료형, for, while, if, list comprehension, 함수) 자료형 자료형 저장되는 데이터의 형태 a = 1 b = 0.1 c = 'hello' print(type(a)) print(type(b)) print(type(c)) 1) 숫자형 int 정수의 형태 a = 1 print(type(a)) >>> b = 0 print(type(b)) >>> c = -1 print(type(c)) >>> float 실수의 형태 a = 1.1 print(type(a)) >>> b = 0.0 print(type(b)) >>> c = -1.1 print(type(c)) >>> d = 1. print(type(d)) >>> int 와 float 의 연산 결과는 int 일까, float 일까? a = 1 b = 1.0 print(type(a)) print(type(b)) >>> >>> ..