반응형

전체 글 493

이터레이터(Iterator) vs 제너레이터(Generator) - 파이썬 대용량 데이터 처리의 지름길

이터레이터(Iterator) vs 제너레이터(Generator) - 파이썬 대용량 데이터 처리의 지름길 파이썬에서 대용량 데이터를 다룰 때 메모리 관리가 중요한 이슈입니다. 전체 데이터를 한꺼번에 로드하면 메모리 부족 문제가 발생할 수 있습니다. 이럴 때 이터레이터와 제너레이터를 활용하면 효과적으로 메모리를 절약할 수 있습니다. 이터레이터(Iterator) 순회 가능한(iterable) 객체에서 데이터를 하나씩 꺼내는 객체입니다. next()를 호출해 다음 요소를 가져옵니다. 모든 요소를 소진하면 StopIteration 예외가 발생합니다. mylist = [1, 2, 3, 4, 5] iter_obj = iter(mylist) print(next(iter_obj)) # 1 print(next(iter_o..

코딩 테스트 대비! 파이썬으로 정렬 알고리즘 구현하기

파이썬으로 정렬 알고리즘 구현하기 문제 설명 다음 정렬 알고리즘들을 파이썬으로 구현하라. - 버블 정렬(Bubble Sort) - 선택 정렬(Selection Sort) - 삽입 정렬(Insertion Sort) 예시 입출력 입력 배열: [3, 1, 4, 2, 5] 버블 정렬 결과: [1, 2, 3, 4, 5] 선택 정렬 결과: [1, 2, 3, 4, 5] 삽입 정렬 결과: [1, 2, 3, 4, 5] 솔루션 코드 def bubble_sort(arr): n = len(arr) for i in range(n): for j in range(n - i - 1): if arr[j] > arr[j + 1]: arr[j], arr[j + 1] = arr[j + 1], arr[j] return arr def sele..

코딩 테스트 대비! 트리 순회(Traversal) 알고리즘 구현하기

트리 순회(Traversal) 알고리즘 구현하기 문제 설명 이진 트리가 주어졌을 때, 전위(preorder), 중위(inorder), 후위(postorder) 순회 방식으로 트리를 탐색하는 알고리즘을 구현하라. 예시 입출력 입력 트리: 1 / \ 2 3 / \ 4 5 전위 순회 출력: 1 2 4 5 3 중위 순회 출력: 4 2 5 1 3 후위 순회 출력: 4 5 2 3 1 솔루션 코드 class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right def preorder(root): result = [] def traverse(node): if node: res..

파이썬 코딩의 혁신! __slots__로 메모리 절약하기

__slots__로 메모리 절약하기 요즘 프로그램 개발 시 메모리 효율성은 중요한 고려사항입니다. 파이썬은 동적 타입 언어라 메모리 관리가 느릴 수 있는데, 이를 개선할 수 있는 기법 중 __slots__가 있습니다. __slots__는 클래스에서 사용할 속성들의 이름을 미리 정의해 메모리 사용량을 최적화하는 방법입니다. 기본적으로 파이썬 객체에는 __dict__ 라는 딕셔너리 형태의 속성 저장소가 있어 메모리를 많이 차지합니다. 하지만 __slots__를 활용하면 객체당 고정된 양의 메모리만 사용하게 됩니다. class MyClass(object): __slots__ = ['name', 'age'] def __init__(self, name, age): self.name = name self.age =..

코딩 테스트 대비! 파이썬으로 "연결 리스트 역순 구현" 문제 해결

파이썬으로 "연결 리스트 역순 구현" 문제 해결 문제 설명 단일 연결 리스트가 주어졌을 때, 연결 리스트를 역순으로 재구성하라. 예시 입출력 - 입력: head = [1, 2, 3, 4, 5] - 출력: [5, 4, 3, 2, 1] 솔루션 코드 class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next def reverseList(head): prev = None curr = head while curr: temp = curr.next curr.next = prev prev = curr curr = temp return prev # 테스트 케이스 node1 = ListNode(1) node2 = ListNode..

효율적인 웹 크롤링을 위한 파이썬 requests & BeautifulSoup 활용

효율적인 웹 크롤링을 위한 파이썬 requests & BeautifulSoup 활용 소개 웹 크롤링은 프로그래밍을 통해 웹 페이지에서 데이터를 수집하는 작업입니다. 데이터 수집, 웹 스크래핑 등 다양한 용도로 활용되며, 파이썬에서는 requests와 BeautifulSoup 라이브러리를 주로 사용합니다. requests 라이브러리 - HTTP 요청을 보내고 응답을 받기 위한 간편한 인터페이스를 제공합니다. - URL에 접근하여 HTML, JSON 등의 데이터를 가져올 수 있습니다. - 파라미터, 헤더, 쿠키 등을 쉽게 처리할 수 있습니다. BeautifulSoup 라이브러리 - HTML/XML 파서로 복잡한 마크업 구조에서 원하는 데이터를 파싱합니다. - DOM(Document Object Model) ..

판다스(Pandas) 데이터프레임 비교하기 - 데이터 일치 여부 확인 꿀팁!

판다스(Pandas) 데이터프레임 비교하기 - 데이터 일치 여부 확인 꿀팁! 데이터 분석 작업 중에는 여러 출처의 데이터를 병합하거나 전처리한 결과를 원본 데이터와 비교해야 하는 경우가 많습니다. 이때 두 개의 데이터프레임이 동일한지 확인하는 작업이 필수적입니다. 판다스(Pandas) 라이브러리를 활용하면 이를 손쉽게 처리할 수 있습니다. 이번 포스팅에서는 두 데이터프레임 간 데이터 일치 여부를 비교하는 다양한 방법을 알아보겠습니다. 1. 전체 데이터프레임 동등 비교 import pandas as pd df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) df2 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) print(df..

텍스트? 이미지? 모두 OK! huggingface 멀티모달 모델 활용하기

텍스트? 이미지? 모두 OK! huggingface 멀티모달 모델 활용하기 최근 딥러닝 모델은 텍스트뿐만 아니라 이미지, 오디오, 비디오 등 다양한 모달리티를 함께 다룰 수 있게 되었습니다. 이러한 멀티모달 모델은 단일 모델에서 여러 형태의 데이터를 통합적으로 처리할 수 있어 새로운 응용 분야가 열리고 있죠. huggingface에서도 대표적인 멀티모달 모델들을 제공하고 있으니 함께 알아볼까요? 1. 멀티모달 모델이란? - 텍스트, 이미지, 오디오, 비디오 등 다양한 모달리티 데이터를 통합 처리하는 모델 - 단일 모델에서 멀티태스크를 수행 가능 - 강력한 표현력으로 새로운 응용 분야 개척 중 2. 대표 모델 소개 - CLIP (Contrastive Language-Image Pretraining) - 이..

사전 훈련 모델을 업그레이드하자! huggingface 파인튜닝 가이드

사전 훈련 모델을 업그레이드하자! huggingface 파인튜닝 가이드 머신러닝 모델 개발에서 가장 큰 고민은 '좋은 모델을 구하기 어렵다'는 점입니다. 하지만 huggingface에는 엄청난 양의 사전 훈련된 모델들이 있죠. 이들을 그대로 사용하기에는 아쉬움이 있겠지만, 파인튜닝을 통해 내 작업에 맞게 커스터마이징할 수 있습니다. 이번 포스팅에서는 huggingface에서 모델 파인튜닝하는 방법을 자세히 알아보겠습니다. 1. 파인튜닝이란? - 사전 훈련된 모델의 가중치를 내 데이터셋으로 추가 학습시키는 전이학습 기법 - 모델을 처음부터 훈련하는 것보다 적은 데이터와 리소스로 좋은 성능을 낼 수 있음 2. 데이터 준비하기 - 업무 영역과 작업에 맞는 데이터셋 준비 (라벨링 포함) - 데이터 전처리 : 토..

머신러닝 모델 고르기? huggingface에서 한방에 해결!

머신러닝 모델 고르기? huggingface에서 한방에 해결! 머신러닝과 딥러닝 분야에서 huggingface는 가장 인기 있는 오픈소스 플랫폼 중 하나입니다. 수많은 사전 훈련된 모델과 라이브러리를 제공하여 개발자와 연구자들이 쉽게 활용할 수 있게 해줍니다. 하지만 방대한 양의 모델들 사이에서 자신의 작업에 가장 적합한 모델을 고르기란 쉽지 않습니다. 이번 포스팅에서는 huggingface에서 유용한 모델을 찾는 방법을 상세히 알아보겠습니다. 1. huggingface 모델 허브 살펴보기 huggingface 웹사이트에 접속하면 가장 먼저 모델 허브(https://huggingface.co/models)를 만나게 됩니다. 여기서 수많은 모델들을 한눈에 볼 수 있습니다. 모델 검색창과 다양한 필터링 기능..

반응형