zenn.skin 무료버전 배포중!
자세히보기

전체 글 182

DataScience
[Pandas] Series

1. Series? - 데이터가 순차적으로 나열된 1차원 배열의 형태 - index와 value가 일대일 대응되어 저장 - value의 값은 다양한 자료형이 될 수 있음(정수, 부동소수, 문자열, Bool형 ...) 2. Series의 생성 1) Dictionary를 인자로 받는 경우 - key는 Series의 index, value는 Series의 value로 저장 import pandas as pd dict_data = {'a': 1, 'b': 2, 'c': 3} sr = pd.Series(dict_data) sr 2) List를 인자로 받는 경우 - 각각의 list인자가 Series의 value로 저장 - index는 0부터 차례대로 저장 list_data = [1, True, 'Koo', 1.23..

Python/Syntax
[Python] Pickle

1. Pickle? - 객체를 저장할 때 사용할 수 있는 라이브러리 - 객체를 직렬화(Serialize)하고 역직렬화(Deserialize)할 수 있게 해준다 - 직렬화: 객체의 데이터를 바이트로 바꾸어 저장 - 역직렬화: 바이트로 저장된 데이터를 다시 원래의 객체로 복원 - 객체는 문자열처럼 일반 텍스트로 저장할 수 없기 때문에 바이너리로 바꾸어 저장해야 한다 - 바이너리로 저장된 파일은 읽을 수 없지만 저장, 전송에 효율적임 - 바이너리로 저장된 파일은 txt가 아닌 bin형식으로 저장 2. Pickle의 사용법 - pickle.dump(객체, "파일이름") 를 이용해 객체를 직렬화 - pickle.load("파일이름") 를 이용해 객체를 역직렬화 3. Pickle을 이용한 객체 저장 1) List ..

Python/Syntax
read_excel로 xlsx 파일 열기

pandas 라이브러리의 read_excel을 이용해 xlsx파일을 읽으려하면 지원하지 않는다며 오류가 발생한다. df = pd.read_excel('data/회원정보.xlsx', sheet_name='Sheet1') print(df) xlrd는 파이썬에서 엑셀 파일을 불러올 수 있도록 도와주는 라이브러리인데 xlrd2부터 xls파일 이외의 파일은 지원하지 않는다고 한다. pandas는 엑셀파일을 읽을 때 기존과 동일하게 xlrd를 기본엔진으로 사용하고 있어 지원하지 않는다고 뜨는 것이다. engine을 xlrd이외의 라이브러리로 변경해주면 정상적으로 xlsx파일을 읽을 수 있다. df = pd.read_excel('data/회원정보.xlsx', sheet_name='Sheet1', engine='ope..

Python/Syntax
[Python] sys.stdin.readline

sys 모듈의 stdin.readline을 사용하면 input과 동일하게 값을 입력받을 수 있다 1. sys.stdin.readline과 input의 차이점? - 두 함수 모두 값을 입력받는 것은 동일 - input을 이용하면 여러 줄의 입력을 받을 때 시간 초과가 발생할 수 있다 - sys.stdin.readline은 한 줄씩 입력을 받으므로 개행 문자를 포함해 입력받는다 * 빠른 입력을 요구하는 백준 15552번 문제 1) input 사용 for _ in range(int(input())): x, y = map(int, input().split()) print(x+y) 2) sys.stdin.readline 사용 import sys for _ in range(int(input())): x, y = m..

Python/Syntax
[Python] List의 요소 삭제하기 (pop, remove, clear, del)

리스트에서는 메소드(pop, remove, clear)를 사용하거나, del 키워드를 사용해 요소를 삭제할 수 있다. 1. pop - pop은 index를 입력받아 리스트에서 해당 index에 존재하는 값을 삭제한다 - index를 입력하지 않는 경우 리스트의 마지막 요소가 삭제된다 ->stack에서 유용하게 사용가능 - 입력받은 인자에 해당하는 index가 존재하지 않는 경우 IndexError가 발생한다 - 리스트의 index는 0부터 시작한다 lst = [10, 20, 30, 40, 50] lst.pop(3) print(*lst) 3번 인덱스에 해당하는 40이 삭제된다 2. remove - remove는 값을 입력받아 리스트에 값이 존재할 경우 값을 삭제한다 - 값이 존재하지 않는 경우 ValueE..

CS/자료구조
[자료구조] 트리(Tree)

1. 트리란? - 노드로 구성된 비선형 자료구조로 계층구조를 나타낼 때 사용 - 하나의 루트 노드를 가짐 - 루트 노드는 0개 이상의 자식 노드를 가짐 - 그래프의 한 종류로 사이클을 갖지 않는 그래프 - 나무의 가지처럼 계속 뻗어 나가는 계층구조로 나무를 뒤집은 모습을 생각해보자 - 컴퓨터에서 폴더 안에 폴더와 파일이 있는 구조도 트리 구조 2. 트리 관련 용어 - 간선(Edge): 노드들을 연결하는 선 - 루트 노드(Root Node): 부모 노드가 없는 최상위 노드, 트리는 하나의 루트 노드를 갖는다 - 단말 노드(Leaf Node): 자식이 없는 노드 - 부모 노드(Parent Node): 자식 노드를 갖는 상위 노드 - 자식 노드(Child Node): 부모 노드가 갖는 노드들 - 깊이(dept..

CS/자료구조
[Python] 큐 구현

스택과 마찬가지로 파이썬에서는 데큐를 이용하면 큐의 기능을 모두 사용할 수 있다. enqueue 연산은 append로, deque 연산은 popleft를 사용하면 된다. 여기서는 이중 연결리스트를 이용해 큐를 구현해보려 한다. 구현하려는 큐의 추상 데이터 타입은 다음과 같다. empty(): 비었다면 True를, 아닐 경우 False를 반환 enqueue(item): 큐에 rear에 item을 삽입 deque(): 큐에 front에 있는 item을 출력 __len__(): 큐의 크기를 반환 1. 큐 이전에 구현한 이중 연결리스트를 이용해 큐를 구현하려 한다 from LinkedList import DoubleLinkedList class Queue(object): def __init__(self): se..

CS/자료구조
[Python] 이중 연결리스트 구현

이중 연결리스트는 단순 연결리스트와 다르게 앞뒤 노드, 양쪽 방향으로 링크를 갖는 구조이다 단순 연결리스트의 구조를 이해하고 있으면 이중 연결리스트는 쉽게 이해할 수 있다결리스트는 단순 연결리스트와 다르게 앞뒤 노드, 양쪽 방향으로 링크를 갖는 구조이다 단순 연결리스트의 구조를 이해하고 있으면 이중 연결리스트는 쉽게 이해할 수 있다 이중 연결리스트는 단순 연결리스트와 다르게 이전 노드에 접근이 가능하다는 장점이 있다 이전 노드에 접근할 수 있다는 말은 특정 노드 이전의 값을 삭제하거나 역으로 출력하는 등 추가적인 연산이 가능하다 구현하려는 이중 연결리스트의 추상 데이터 타입은 다음과 같다 empty(): 리스트가 비었다면 True, 아닐 경우 False를 반환 append(data): 리스트의 맨 뒤에 ..

CS/자료구조
[자료구조] 큐 (Queue)

큐란? 큐는 스택과 함께 대표되는 선형 자료구조이다. 큐는 스택과 다르게 들어오는 방향과 나가는 방향이 정해져 있다. 선입선출(FIFO) 자료구조로 큐 안에 먼저 입력된 원소가 큐에서 꺼낼 때도 제일 먼저 출력된다. 계산대에 줄을 선 사람들 (들어온 순서대로 먼저 계산을 하고 나가는 모습) 이나 프린터기에서 먼저 들어온 순서대로 인쇄가 되는 모습을 생각하면 된다. 큐 안에 원소를 집어넣는 enque 연산, 맨 먼저 입력된 원소를 출력하는 deque 연산을 갖고 추가적으로 필요에 따라 가장 앞선 원소를 확인하는 front 연산이나 가장 마지막 원소를 확인하는 rear 연산을 구현할 수 있다. 큐를 배열로 구현할 때는 몇가지 문제점이 존재한다. enqueue를 할 때는 문제가 발생하지 않지만 deque를 할..