본문 바로가기

전체 글

[자료구조] 알고리즘의 성능평가와 ADT 공간 복잡도(Space Complexity) : 알고리즘의 메모리 사용량을 평가하기 위한 척도. 시간 복잡도(Time Complexity) : 알고리즘의 수행속도를 평가하기 위한 척도. 데이터 수의 증가에 따른 연산횟수의 변화 정도를 판단할 수 있다. 최악의 경우를 기준으로 핵심 연산의 횟수를 계산한다. 일반적으로 '빅-오 표기법'을 이용한다. 빅-오 표기법(Big-Oh Notation) 데이터 수의 증가에 따른 연산횟수 증가율의 상한선을 표현하는 표기법이다. ▶증명 : "두 개의 함수 f(n)과 g(n)이 주어졌을 때, 모든 n≥K에 대하여 f(n)≤Cg(n)을 만족하는 두 개의 상수 C, K가 존재하면, f(n)의 빅-오는 O(g(n))이다." 대표적인 빅-오 표기들의 성능 비교(오른쪽으로 갈 수록 .. 더보기
[리뷰] 읽기 좋은 코드가 좋은 코드다 : 더 나은 코드를 작성하는 간단하고 실전적인 테크닉 도서관에서 제목을 보고 관심이 생겨서 읽어봤습니다. 제목 그대로 읽기 좋은 코드, 좋은 코드에 대한 내용을 다룹니다. 글 자체도 쉽게 설명되어있고, 다양한 코드를 예시로 보여주어서 코딩을 해본 사람이라면 어렵지 않게 잘 읽을만한 정보서였네요. 코드 습관이 아직 잘 잡히지 않은 제게는 도움되는 정보가 많았습니다. 모르는 언어로 된 예시가 나오기도 했지만, 컴퓨터 언어들이 일맥상통하는 부분이 있어서 대충 무슨 뜻이겠구나~ 하고 알아볼 정도는 되었습니다. 두고두고 볼까해서 각 챕터마다 끝부분에 나오던 챕터 요약을 정리해 보았습니다. 1부 표면적인 수준에서의 개선 1. 이름에 정보를 넣기 특정한 단어 사용(더 구체적이고 명확한 단어) 중요한 세부 정보를 덧붙이기 사용 범위가 넓으면 긴 이름, 좁으면 짧은 이름 .. 더보기
판다스(pandas) - 데이터프레임 행, 열 선택/필터/삭제하기 *행/열 선택하기 기본 특정 row(행) n~m-1까지 선택 df[n:m] 가로 인덱스로 행 n~m-1까지 선택 df.loc[[n, m]] column(열) 선택 - 이름을 통해 df['열 이름'] 열 n~m-1까지 선택 df.iloc[:, n:m] *행/열 필터링하기 특정 열 값이 조건값 이상인 행만 필터링 df[df.열 > 조건값] df.query('조건내용') 과 동일 다중 조건의 경우 df[ (df.열1>조건값1) & (df.열2 == 조건값2)] 이름으로 여러 개의 열 선택 시 df.filter(items = ['열1', '열2']) 컬럼명에 a가 들어가는 컬럼만 표시 df.filter(like='a', axis=1) *행/열 삭제하기 이름으로 행 삭제 df.drop(['행 이름1', '행 이름.. 더보기
판다스(pandas) - 데이터프레임 불러오기/생성/파일로 저장 판다스 사용시 모듈 불러오기 import pandas as 약칭(보통 pd) ▶데이터프레임 불러오기 데이터프레임명 = pd.read_csv('경로.csv') 한글정보는 인코딩 오류가 난다. 옵션으로 engine='python' 붙여주는걸로 해결되었다. 이걸로 해결 안되는 경우도 있음. 상위 디렉토리로 가야하는 경우 ../ 을 이용한다. 파일 경로의 폴더 및 파일명은 가급적 영어로 맞춰두자. ▶데이터프레임 생성하기 방법1. 딕셔너리 리스트 사용 딕셔너리리스트명 = [ {'항목1' : 값1, '항목2 ': 값2 ... , '항목n' : 값n}, {'항목1' : 값1, '항목2 ': 값2 ... , '항목n' : 값n}, ... , {'항목1' : 값1, '항목2 ': 값2 ... , '항목n' : 값n} ].. 더보기