본문 바로가기

파이썬

파이썬의 연산자 메소드 연습 def solution(num1, num2): answer = int(num1).__floordiv__(num2) return print(answer) # 연산자 메소드 # __add__(self, other) : + # __sub__(self, other) : - # __mul__(self, other) : * # __truediv__(self, other) : / # __floordiv__(self, other) : // # __mod__(self, other) : % # __pow__(self, other[, modulo]) : ** # __lshift__(self, other) : > ref. https://andamiro25.tistory.com/50 [파이썬]연산자 오버로딩과 특수메소드, Ra.. 더보기
[Computer Science] Iterative Sorting(반복 정렬) - Selection Sort(선택정렬), Insertion Sort(삽입정렬), Bubble Sort(버블정렬), Count Sort (계수 정렬) / 시간 측정 비교 모든 알고리즘의 기본 원리는 숫자와 조건을 활용하면서 발전시킨다고 생각하면, 어려운 알고리즘에 대해 배우는 관점이 달라질 수 있다. Selection Sort(선택정렬) 선택정렬은 가장 작은 노드(최소값)를 선택하고 왼쪽부터 정렬을 하기 위해 알맞은 위치와 교환하는 작업을 반복하는 것. 선택정렬 정리 : 최소노드 선택 -> 왼쪽부터 비교 -> 교환 단점 : 버블정렬과 달리 서로 이웃하지 않은 노드를 교환하므로, 안정적이지 않다. '''선택 정렬 소스 코드 ''' array = [7, 5, 9, 0, 3, 1, 6, 2, 8, 4] for i in range(len(array)): min_index = i #가장 작은 원소의 인덱스로 지정 for j in range(i+1, len(array)): #j는 .. 더보기
[Computer Science] 자료구조 - 검색과 재귀(Searching and Recursion) 검색(Searching) 특정 노드를 추가하거나 삭제를 위해서는 검색이 우선되야 한다. 다양한 알고리즘을 활용하는 경우, 최적 알고리즘 경로를 측정하는데 쓰인다. 검색하는 컬렉션이 무작위이고 정렬되지 않은 경우, 선형검색이 기본적인 검색방법이다. linear search (선형 검색, (순차탐색)) 한 번에 하나씩 모두 검색 반복문을 활용해 배열의 변수(코드에서는 반복자 i)만큼 검색을 진행 # 선형 검색 알고리즘 # 하나의 반복문과 리스트의 인덱스, 조건문을 활용하여 특정값을 검색할 때까지 반복한다. def linear_search(arr, target): # 입력 배열 길이의 범위에서 각 idx를 반복 for idx in range(len(arr)): # 현재 idx의 항목이 비교 대상과 같은지 확인.. 더보기
[Computer Science] 컴프리헨션(comprehension) Comprehension 실제 프로그래밍에서 한 줄로 파이썬 기능을 구현할 수 있는 기능이다. 장점: 코드 간소화를 위해 사용, 직관적이며 빠른 속도 단점: 조건이 복잡해 지는 경우 직관성 떨어지고, 메모리 사용량이 증가 하여 사용 어려움 리스트 컴프리헨션 예제 1 리스트속의 숫자를 제곱한 값을 리스트로 도출시키기 '''일반 for문 ''' numbers = [1, 2, 3, 4] squares = [] for n in numbers: squares.append(n**2) print(squares) ''' Comprehension 사용 ''' numbers = [1, 2, 3, 4] squares = [n**2 for n in numbers] #리스트 안에 for문을 축약해 작성함. print(squar.. 더보기
[Computer Science] 파이썬 with OOP(Object-Oriented Programming) OOP(Object-Oriented Programming) 최소비용으로 최대효율을 지향하며. 세상에 있는 실체가 있는 모든 물체를 클래스와 인스턴스, 함수, 변수라는 object로 변화시켜서 프로그램을 구성. 기본 전제는 기능(함수, 변수) 재사용이 가능한 설계 및 프로그래밍. 기본 개념 설계(사람이 이해하는 방식)와 구현할 소스코드(컴퓨터가 이해하는 방식) 간의 상호이해가 중요하다. HW&SW 성능증가 (CPU성능 증가, 소프트웨어 다중실행) 덕분에 OOP의 모든 기능을 활용할 필요는 없다. OOP의 개념을 무분별하게 활용하면 유지보수가 어려워질 수도 있기때문에 설계방향 및 서비스기능에 따라 사용해야 한다. OOP를 제대로 하는 법은 프로그래밍뿐만 아니라 다양한 도메인에서 재사용 가능한 클래스, 메소드.. 더보기
[Python] Basic Collection - list[], tuple(), dict{} 기본자료형 vs 컬렉션 자료형 기본 자료형(문자열, 숫자, bool)등은 특정 하나의 값만 사용. 컬렉션은 여러개의 값을 저장 할 수 있다. 컬렉션 자료형의 특징에 따라 리스트, 튜플, 셋, 딕셔너리로 구분. List [ ] 컬렉션 자료형에서 가장 많이 쓰이는 자료형태로; 딘순자료형이 아닌 자료구조의 형태를 취함 리스트는 가변 가능함 (=동적이다) ; 인덱스와 메소드를 활용, 값의 수정 및 정렬이 쉽다. cheeses = ['Cheddar', 'Edam', 'Gouda'] numbers = [123, 456] empty = [] print(cheeses, numbers, empty) # ['Cheddar', 'Edam', 'Gouda'] [123, 456] [] print('numbers[1] :',nu.. 더보기
[Machine Learning] 지도학습 -정규화 선형회귀[Ridge Regression (릿지 회귀, L2 Regression), Lasso Regression(라쏘 회귀; L1 regression)] 정규화 선형회귀(Regularized Method, Penalized Method, Contrained Least Squares) 정규화(Regularized) 선형회귀 방법은 선형회귀 계수(weight)에 대한 제약 조건을 추가함으로써 모형의 과적합을 막는 방법이다. 모형이 과도하게 최적화되면 모형 계수의 크기도 과도하게 증가하는 경향이 나타난다. 따라서 정규화 방법에서 추가하는 제약 조건은 일반적으로 계수의 크기를 제한하는 방법을 사용한다. Ridge 회귀모형 Lasso 회귀모형 Elastic Net 회귀모형 Ridge Regression (릿지 회귀, L2 Regression) Ridge 회귀는 과적합을 줄이기 위해서 사용하는 것, 정규화의 강도를 조절해주는 패널티값인 람다로 모델을 변형하여 과적합.. 더보기
[데이터전처리] tidy-wide tabular data -변환-> Pivot Table, Melt 1. Wide Table (long-form형식) 이러한 데이터를 기반으로 실제로 구현, 변환을 해보겠습니다. %matplotlib inline import pandas as pd import numpy as np import seaborn as sns wide_table1 = pd.DataFrame([[np.nan, 2], [16, 11], [3, 1]], index=['X', 'Y', 'Z'], columns=['A', 'B']) wide_table1 A B X NaN 2 Y 16.0 11 Z 3.0 1 wide_table1은 wide table의 형태 (=long-form) 테이블은 2개의 열과 3개의 행으로 구성되어 있으며 각각 라벨링 되어 있습니다. 2. Transpose (.T; 전치) wid.. 더보기