[Python] Assignment와 Shallow Copy, Deep Copy
·
Programming
시작하기 전https://ds31x.tistory.com/404 [Py] 객체(object)에 대한 정보 확인하기Python에서 object(객체)란?type, id, refcount, value 를 속성으로 가지고 있는 a chunk of data.https://dsaint31.tistory.com/517 [Python] Variable (and Object)Variable (and Object)1. 정의Python에서 Variable은 Memory에 할당된 Objectds31x.tistory.comhttps://ds31x.tistory.com/199 [Python] mutable and immutable: MutabilityMutabilityPython에서 Data Types를 구분짓는 중요 속성. ..
[Programming] Garbage Collection (GC)
·
Programming
Garbage Collection 이란?Garbage collection (GC)은 Programming에서 memory를 관리하는 기법 중의 하나임. Dynamical Memory Allocation에서 더 이상 사용되지 않는 object 또는 data에 할당된 memory를 자동으로 회수하는 Process를 의미한다.GC를 지원하지 않는 경우 GC를 지원하지않는 C, C++ 등의 프로그래밍 언어에서는일반적으로 programmer가 memory의 할당과 해제를 explicitly(명시적으로) 처리해야하며,이를 잘못 수행하여 발생하는 memory leakage는 100% programmer의 책임이었음. Pointer와 함께 이 명시적인 memory 관리 는Programmer에게 강력한 권한을 주면서동시..
[Python] Interpreter and PVM (Python Virtual Machine)
·
Programming
Interpreter and PVM (Python Virtual Machine)더보기대학을 막 졸업해서 초보 프로그래머로 일을 할 때 개인적으로 가지고 있던 편견 중 하나가 script language를 매우 하찮게 생각하면서 오직 compiler languages 만을 programming language로 생각했던 것이다. (지금 돌이켜보면 이불킥하고 싶을 정도로 부끄러운 생각이었다.) 학교에서 살짝 배웠던 Visual Basic에서 느꼈던 interpreter language의 간단함이 너무 머리에 남아서였는지 C, C++ 등의 언어와 달리 interpreter language를 무시하던 선입견을 가졌었다. 우스운 건, interpreter language는 무시하면서도 Virtual machine..
[Python] recursive call : Fibonacci Sequence (and dynamic programming)
·
Programming
Recursive call의 경우, 특정 함수가 내부에서 자기자신을 다시 호출하는 것을 가르킴. 다음과 같은 재귀적인 수식을 있는 그대로 작성하게 해준다는 장점은 있지만,속도 및 메모리 사용 등의 측면에서는 그리 환영받지는 못함 (때문에 많이 사용되지 않음).$$f(t) = f(t-1) + ...$$$f(t)$를 정의하는데에 같은 함수가 사용되는 경우를 recursive call로 작성하면 매우 직관적인 구현이 가능하다.대표적인 예로 Fibonacci sequence를 들 수 있다.$$f(0) = 0, \\f(1) = 1 \\f(n) = f(n-1) + f(n-2) \text{ , where }n >1$$Python 구현 : Recursive call 이용한 경우.def fibonacci_recur(nu..
[ML] Levenshtein distance
·
Programming
string(문자열) 간의 차이를 측정하기 위한 measure임. 한 문자열이 다른 문자열로 변환되기 위해 필요한 최소한의 연산의 수를 나타냄. 여기서의 연산이란 다음 3가지로 구성됨. insertion (추가) deletion (삭제) substitution (치환) 참고로, Levenshtein distance는 symmetric을 성립하지 않아서 엄밀한 의미의 metric (or distance function)은 아님. Levenshtein distance의 경우, 길이가 다른 string간의 차이도 측정하지만, 같은 길이의 string만으로 한정할 경우엔 Hamming distance가 보다 편함 Hamming Distance : https://dsaint31.me/mkdocs_site/DIP/..
[DIP] Basic Operations (on a binary image) for Morphological Operations
·
Programming/DIP
Binary image는 pixel intensity로 0 과 1(혹은 255)의 값을 가지며, 주로 set(집합)과 관련된 연산을 통해 Morphological operaton이 처리됨. 화소집합 영상 내에 존재하는 pixel 중, 처리 대상이 되는 object에 해당하는 pixel들의 집합 분야에 따라 해당 대상은 다양함. 일반적으로 “화소집합” 내의 pixel은 1 의 값을, 그 외의 pixel은 0을 값으로 가짐. 기본 연산들 Union 연산 화소집합 간의 Union Intersection 연산 화소 집합 간의 Interception Complement 연산 화소 집합 간의 Complement Difference 연산 화소 집합 간의 차이. Translation 연산 화소 집합 의 이동오른쪽의 결..