머신 러닝/Python

프로그램을 작성하다 보면 다양한 예외 상황이 발생할 수 있다.이를 적절하게 처리하면 예기치 않은 프로그램 종료를 방지하고, 디버깅 및 유지보수를 용이하게 할 수 있다.이번 포스팅에서는 파이썬의 기본 예외 처리 방법과 함께 나만의 커스텀 예외 클래스를 정의하고 활용하는 방법을 살펴보자.1. 기본 예외 처리파이썬에서 try, except, else, finally 구문을 이용해 예외를 처리할 수 있다.try: 예외가 발생할 수 있는 코드를 작성except: 특정 예외가 발생했을 때 이를 처리하는 코드를 작성else: 예외가 발생하지 않았을 때 실행할 코드를 작성finally: 예외 발생 여부와 상관없이 항상 실행되는 코드를 작성def divide(a, b): try: result = a /..
파이썬의 데코레이터(decorator)는 기존 함수를 수정하지 않고도 추가적인 기능을 손쉽게 덧붙일 수 있는 강력한 도구이다.데코레이터의 기본 개념과 활용하는 법을 코드를 통해 알아보자.데코레이터란?데코레이터는 하나의 함수를 입력받아 새로운 함수를 반환하는 함수이다.이 방식을 통해 로깅, 실행 시간 측정, 캐싱 등 공통적인 기능을 여러 함수에 쉽게 적용할 수 있다.핵심 로직과 부가 기능을 분리하여 코드의 재사용성과 가독성을 높일 수 있다는 점이 큰 장점이다.데코레이터의 장점 및 필요성코드 재사용성 향상여러 함수에 동일한 기능을 중복 없이 적용할 수 있다.관심사의 분리주요 기능과 부가 기능(예: 인증, 로깅)을 분리하여 코드의 가독성 및 유지보수가 용이하다.유연한 기능 추가함수 실행 전후에 다양한 부가 작..
파이썬 matplotlib을 사용해서 서브플롯을 그리는 방법 두 가지를 살펴보자.1. 명시적이고 직관적인 방법명시적이고 직관적이므로 코드를 통해 살펴본다.import matplotlib.pyplot as pltimport numpy as np# 데이터 생성x = np.linspace(0, 10, 100)y1 = np.sin(x)y2 = np.cos(x)y3 = np.tan(x)y4 = x ** 0.5# Figure와 서브플롯 생성fig, axs = plt.subplots(2, 2, figsize=(10, 8)) # 2x2 서브플롯# 첫 번째 서브플롯axs[0, 0].plot(x, y1, color='blue')axs[0, 0].set_title('y = sin(x)')# 두 번째 서브플롯axs[0, 1..
이전 포스팅에서 npy, npz 파일을 만들고 여는 법을 살펴봤다.이번 포스팅에서는 npz 파일의 키를 확인하는 법을 알아본다.npz 파일 key 확인하기files 속성을 사용하여 아래와 같은 코드로 키를 확인할 수 있다.import numpy as np# .npz 파일 열기data = np.load('파일이름.npz')# 키 확인하기keys = data.filesprint(keys)예제npz 파일을 열고 키를 확인한 다음 첫 번째 키에 해당하는 배열을 출력해보자.import numpy as np# .npz 파일 열기data = np.load('example.npz')# 키 확인하기keys = data.filesprint("Keys:", keys)# 첫 번째 키에 해당하는 배열 출력하기array = da..
파이썬에서 숫자를 출력할 때 콤마(,)를 사용하여 자동으로 천 단위마다 쉼표를 넣고 싶다면 format() 함수를 사용할 수 있다.예를 들어 1234567을 출력할 때 1,234,567과 같이 출력하고 싶다면 다음과 같이 코드를 작성할 수 있다.number = 1234567formatted_number = "{:,}".format(number)print(formatted_number) # 1,234,567 출력 f-string을 사용하여 출력할 수도 있다.사실 이 방법이 좀더 직관적이고 성능이 빠르다고 알려져 있다.number = 1234567formatted_number = f"{number:,}"print(formatted_number) # 1,234,567 출력 메모할 겸 포스팅 남긴다.
이전 포스팅에서 살펴본 것처럼 list comprehension은 기본적으로 for문을 사용하여 리스트를 생성한다.자세한 내용은 아래 글에 나와있다. [Python] List Comprehension의 이해와 예제파이썬의 list comprehension은 리스트를 생성하기 위한 강력하고 간결한 방법을 제공한다.기본적으로 for문을 사용하여 리스트를 한 줄로 생성할 수 있게 해준다.이제 list comprehension의 기본적인 구조dykm.tistory.com파이썬에서는 리스트를 생성하거나 처리할 때 for문을 사용하지 않고도 다양한 방법을 사용할 수 있다.이번 포스팅에서는 for문을 사용하지 않은 list comprehension에 대해 알아보자.1. map 함수map 함수를 사용하여 리스트의 각 ..
파이썬의 list comprehension은 리스트를 생성하기 위한 강력하고 간결한 방법을 제공한다.기본적으로 for문을 사용하여 리스트를 한 줄로 생성할 수 있게 해준다.이제 list comprehension의 기본적인 구조와 예제를 살펴보자.List Comprehension의 기본 구조List comprehension의 기본 구조는 다음과 같다.[표현식 for 항목 in iterable]이 구조에서 각 요소에 대한 설명은 아래와 같다.표현식: 각 항목에 적용되는 계산이나 값을 나타냄항목: iterable(반복 가능한 객체)에서 가져온 요소를 나타내는 변수iterable: 리스트, 튜플, 문자열 등 반복 가능한 객체이제 예제를 통해 list comprehension에 대해 알아보자.예제몇 가지 예제를 ..
.npy 및 ,npz  파일 형식.npynpy파일은 NumPy 어레이를 저장하기 위한 기본 파일 형식이다.바이너리 형식으로 저장되어 읽기와 쓰기가 빠르고 메타데이터를 포함, 어레이를 정확하게 복원할 수 있다..npznpz 파일은 여러 개의 npy 파일을 하나의 압축된 파일로 묶어 저장하는 형식이다.여러 개의 배율을 효율적으로 저장하고 불러올 수 있다..npy및 .npz 파일의 압축 및 해제 방법.npy 파일 저장 및 불러오기.npy 파일 저장import numpy as np# 데이터 생성array = np.arange(10)# NPY 파일로 저장np.save('array.npy', array).npy 파일 불러오기import numpy as np# NPY 파일에서 데이터 로드loaded_array = n..
RecursionError: maximum recursion depth exceeded는 파이썬에서 재귀 호출의 깊이 제한을 초과했을 때 발생하는 에러이다.파이썬은 기본적으로 재귀 호출의 깊이에 제한을 두고 있으며, 이 한계를 초과하면 해당 에러가 발생한다.일반적으로 파이썬은 재귀 호출의 최대 깊이를 1000으로 제한하고 있다.이러한 제한은 스택의 한계를 넘어갔을 때, 스택 오버플로우를 방지하기 위한 것이다.깊은 단계의 재귀 호출이 필요한 경우, 이 한계를 조절할 수 있다.하지만 주의를 기울여야 하는데 이유는 크게 세 가지로 나눌 수 있다.스택 오버플로우재귀 호출은 호출 스택을 사용한다.스택은 제한된 메모리를 사용하며, 깊은 재귀 호출을 하면 스택이 넘치는 스택 오버플로우가 발생할 수 있다.스택 오버플로..
이전 포스팅에서 이항계수를 계산할 때 재귀함수를 사용하는 방법과 약간의 문제점을 살펴봤다. [Python] 재귀 함수와 예제(팩토리얼, 이항계수 계산)재귀 함수 재귀 함수는 함수가 자기 자신을 호출하는 프로그래밍 기법이다. 이는 어떤 문제를 해결할 때 그 문제를 더 작은 부분 문제로 나누고, 각 부분 문제를 해결함으로써 전체 문제를 해결dykm.tistory.com 재귀 함수를 사용한 이항계수를 구하는 코드와 문제점은 다음과 같다.class BinomialCoefficientCalculator: def calculate(self, n, k): # 기저 조건: k가 0이거나 k가 n과 같을 때 if k == 0 or k == n: return 1 ..