Python

이번 포스팅은 저번 포스팅의 버블 정렬에 이어 퀵 정렬에 대해 정리한 내용입니다. 퀵 정렬(Quick Sort)은 가장 널리 사용되는 정렬 알고리즘 중 하나이며, 이번 포스팅에서 퀵 정렬의 개념과 구동 방식, 그리고 파이썬으로 하는 구현 예제를 통해 퀵 정렬을 알아보겠습니다. | 퀵 정렬(Quick Sort) 이해 - 퀵 정렬은 분할 정복(Divide and Conquer) 알고리즘의 대표적인 예로 다음과 같은 단계로 나눌 수 있습니다. 1. 분할(Divide) : 리스트에서 하나의 요소를 선택, 이를 "피벗(Pivot)"이라 함 피벗을 기준으로 작은 값은 왼쪽, 큰 값은 오른쪽으로 옮김 2. 정복(Conquer) : 피벗을 기준으로 분할된 두 리스트에 대해 재귀적으로 정렬 함수 호출 각 부분 리스트에 ..
이번 포스팅은 파이썬을 공부하면서 알게 된 디스크립터(Descriptor)에 대해 정리하였습니다. 파이썬은 객체 지향 프로그래밍을 지원하는 언어로 객체의 속성(attribute)를 제어하는 다양한 방법을 제공합니다. 객체의 속성을 제어하는 다양한 방법 중 디스크립터(Descriptor)에 대해 알아보겠습니다. | 디스크립터(Descriptor) 개념 - Descriptor는 클래스의 속성을 더욱 잘 다룰 수 있게 해주는 파이썬의 클래스 제어 방법 중 하나입니다. - 객체의 속성(attribute)에서 추가 로직을 적용하거나 속성 값 변환, 유효성 검사 등을 수행할 때 유용하게 사용하며 일반적으로는 'property'나 데코레이터를 사용할 수 있지만 디스크립터는 재사용성이 높은 방법을 제공합니다. | 디스..
이번 포스팅은 python에서 enumerate의 이해를 돕기 위해 작성했습니다. for 루프 - enumerate를 설명하기 전에 python에서 for 루프를 어떻게 사용하는지에 대해 간단하게 설명하겠습니다. - python에서 for문은 기본적으로 의 형태로 작성되며 iterable은 리스트, 튜플, 문자열 등 순회가 가능한 것이면 대부분 사용 가능하며 item은 iterable가 가지고 있는 원소들이 for문을 돌면서 하나씩 할당되게 되며 인덱스를 가지게 됩니다. list = ['A', 'B', 'C'] for item in range(len(list)): print(item, list[item]) 결과) - 결과를 보시면 item 순서대로 list에서 설정된 것을 볼 수 있습니다. enumera..
이번 포스팅은 python에서 id 함수가 무엇인지, 그 사용과 결과에 대해 알아보겠습니다. ID 연산자 - id() 함수는 객체의 고유 값을 리턴합니다. - 즉, 어떤 객체를 가리키는지 볼 수 있다는 의미! - id는 파이썬이 객체를 구별하기 위해서 부여하는 일련번호입니다. 숫자로서 의미는 없습니다. - 동일한 객체 여부를 판별할 수 있습니다. 예시) a = 5 b = 10 print(id(a)) print(id(b)) b = a print(id(b)) 결과) - 처음 id(a)와 id(b)를 보면 각각 a와 10을 가리키는 것을 볼 수 있습니다. - b = a를 통해 b가 5를 가리키게 하여 id(a)와 id(b)가 같은 것 을 볼 수 있습니다. id()를 간단하게 알아보았고 비교해 보았습니다. 질문..
· 영상처리
이번 포스팅은 k-means 알고리즘에 대해 알아보고 OpenCV에서 사용하는 k-means Clustering에 대해 알아보겠습니다. 포스팅 관련 내용은 아래에서 출처를 얻어 사용하였습니다. https://docs.opencv.org/4.5.2/d1/d5c/tutorial_py_kmeans_opencv.html k-평균(k-means) 알고리즘 - k-means 알고리즘은 대표적인 Clustering 알고리즘 중 하나입니다. 1) 각 군집은 하나의 중심(centroid)을 가집니다. 2) 각 개체는 가장 가까운 중심에 할당됩니다. 3) 같은 중심에 할당된 개체들이 모여 하나의 군집을 형성하는 알고리즘입니다. - k(군집 수)를 정해야 알고리즘을 실행할 수 있으며 이는 k가 하이퍼파라미터라는 의미입니다...
· 영상처리
이번 포스팅은 객체 추적 중 하나의 방법인 배경 제거(Background Subtraction)에 대해 알아보겠습니다. 포스팅 관련 내용은 아래에서 출처를 얻어 사용하였습니다. https://docs.opencv.org/3.4/d1/dc5/tutorial_background_subtraction.html Background Subtraction (배경 제거) 배경 제거는 영상에서 객체가 있는 배경에서 객체가 없는 배경을 빼서 출력해주는 것을 말합니다. 이는 객체를 추적할 때 객체가 무엇인지 어디에 있는지 파악하게 해주는 방법입니다. 아래의 그림을 보면 이해가 쉬울 거예요! 위 그림을 보시면 객체(배)가 있는 사진에서 객체(배)가 없는 사진을 빼서 결국 객체만 얻는 것을 볼 수 있습니다. Backgroun..
이번 포스팅은 파이썬을 공부하며 잘 몰랐던 기능인 언패킹에 대해 공부한 것을 정리한 것입니다. 1. 패킹(packing) 이란? - 패킹은 앞서 *args와 **kwargs 게시물에서 정리한 것과 같이 함수에서 여러 개의 매개변수를 쓰기 위해 사용하는 것입니다. - 정리한 링크를 달아놓겠습니다! https://wjunsea.tistory.com/59 [Python] *args와 **kwargs 정리 이번 포스팅은 파이썬을 사용하면서 함수에서 *와 **를 이해하기 위해 작성하는 포스팅입니다. 1. *args 이해 - args는 arguments의 줄임말입니다. 함수 인자로 *args를 대표적으로 쓰지만 다르게 써도 wjunsea.tistory.com 2. 언패킹(unpacking) 이란? - 패킹은 여러 ..
이번 포스팅은 파이썬에서 간결하고 실용적인 기능 리스트 컴프리헨션에 대해 알아보겠습니다. 1. 리스트 컴프리헨션(List Comprension)이란? 리스트 컴프리헨션은 리스트를 생성하는 방법 중 하나입니다. 리스트 대괄호 [ ] 안에 if문과 for문을 사용하여 조건에 만족하는 구문만 리스트로 생성할 수 있습니다. 리스트를 생성하고 for문과 if문을 사용하는 것과 리스트 컴프리헨션을 사용하는 것이 무엇이 차이가 나는지 아래 예제를 통해 알아보겠습니다. - 리스트 컴프리헨션을 사용하지 않고 0 ~ 4까지의 정수 리스트를 생성 list=[] for i in range(5): list.append(i) print(list) - 결과 예상 할 수 있듯이 0 ~ 4 까지의 정수로 리스트를 생성했습니다. - 리..
우준세
'Python' 태그의 글 목록