전체 글 18

[데이터 분석] 넘파이 모듈 Numpy

1. 넘파이란? •수학, 과학 계산용 패키지 •성능 : 파이썬 리스트보다 빠름 •메모리 사이즈 : 파이썬 리스트보다 적은 메모리를 사용 •빌트인 함수 : 선형대수, 여러 함수들을 내장 import numpy #별칭(alias) 지정 import numpy as np 1-1 array (배열) •여러 값들의 그룹 arr = np.array([1,2,3,4]) arr array([1, 2, 3, 4]) type(arr) #ndarray = n dimension array numpy.ndarray list1 = [1,2,3,4] list2 = ([1,2,3,4], [5,6,7,8]) print(list1) print(list2) [1, 2, 3, 4] ([1, 2, 3, 4], [5, 6, 7, 8]) #리스..

파이썬 2022.04.19

[자료구조] 시간복잡도

1. 알고리즘 복잡도 표현방법 1-1 알고리즘 복잡도 계산이 필요한 이유 하나의 문제를 푸는 알고리즘은 다양할 수 있음 ▸정수의 절댓값 방법1: 값이 음수인지 확인해서 0보다 작은 음수일 때만 -1을 곱하기 방법2: 정수값을 제곱한 값에 다시 루트를 씌우기 다양한 알고리즘 중 어떤 알고리즘이 더 좋은지 분석하기 위해 복잡도를 정의하고 계산함 1-2 알고리즘 복잡도 계산 항목 ▸시간 복잡도: 알고리즘 실행 속도 ▸공간 복잡도: 알고리즘이 사용하는 메모리 사이즈 가장 중요한 시간 복잡도를 꼭 이해하고 계산할 수 있어야 좋은 프로그램을 개발할 수 있음 1-3 알고리즘 시간 복잡도의 주요 요소 반복문이 시간을 가장 많이 지배 다음 중 여행 시간 영향을 많이 미칠 것 같은 요소는? 1. 짐싸기 2. 자동차 문열기..

파이썬 2022.04.18

[자료구조] 더블 링크드리스트 Dubly Linked List

# insert_before(2.5, 3) def insert_before(self, data, before_data): if self.head == None: self.head = Node(data) return True else: node = self.tail while node.data != before_data: node = node.prev if node == None: return False new = Node(data) before_new = node.prev before_new.next = new new.prev = before_new new.next = node node.prev = new return True 양방향으로 연결되어 있어서 노드 탐색이 양쪽으로 모두 가능 class Node..

파이썬 2022.04.18

[자료구조] 링크드 리스트 Linked List

1. 링크드 리스트 (Linked List) ▸배열은 순차적으로 연결된 공간에 뎅터를 나열하는 구조라면 링크드 리스트는 떨어진 곳에 존재하는 데이터를 화살표로 연결해서 관리하는 구조 ▸C언어에서는 중요한 자료구조이지만 파이썬에서는 리스트 타입이 링크드 리스트의 기능을 모두 지원 ▸데이터의 삽입과 삭제가 매우 빠름 ​ 1-1 링크드 리스트 용어 ▸노드(node): 데이터 저장 단위(데이터값, 포인터)로 구성 ▸포인터(pointer): 각 노드 안에서 다음이나 이전의 노드와의 연결 정보를 가지고 있는 공간 ​ -링크드 리스트의 예 #파이썬에서 링크드 리스트를 구현할 때 클래스르 활용 #node와 node를 연결하기 (포인터 활용) ​ 1-2 링크드 리스트로 데이터 추가하기 ​ 1-3 링크드 리스트 데이터 출..

파이썬 2022.04.18

[자료구조] 스택 stack

1. 스택이란? ▸데이터를 제한적으로 접근할 수 있는 구조 ▸한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조 ▸가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 구조 ▸LIFO (Last-In, First-Out) 1-1 스택의 구조 ▸스택은 LIFO 또는 FILO 데이터 관리 방식 ▸스택의 활용 > 컴퓨터 내부의 프로세스 구조의 함수 동작 방식 ▸주소기능 push(): 데이터를 스택에 쌓기 pop(): 데이터를 스택에서 꺼내기 1-2 스택의 장단점 ▸장점 1) 구조가 단순해서 구현이 쉬움 2) 데이터 저장/읽기 속도가 빠름 ▸단점 1) 데이터 최대 개수를 미리 정해야 함 (파이썬의 경우 재귀함수는 1000번 까지만 호출이 가능) 2) 저장 공간의 낭비가 발생할 수 있음 (미리 최대 개수만큼 저장공간을 ..

파이썬 2022.04.17

[자료구조] 큐queue

1. 큐의 구조 ▸가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조 ▸줄을 서는 행위와 유사 ▸FIFO (First-In, First-Out) 1-1 큐의 용어 ▸Enqueue: 큐에 데이터를 넣는 기능 ▸Dequeue: 큐에 데이터를 꺼내는 기능 (확인 : Visualgo) 1-2 파이썬 queue 라이브러리 활용해서 queue 자료구조 사용하기 ▸Queue(): 가장 일반적인 큐 자료구조를 생성 ▸LifoQueue(): 나중에 입력된 데이터가 먼저 출력되는 구조의 큐 자료구조를 생성(스택구조와 비슷) ▸PriorityQueue(): 데이터마다 우선순위를 넣어서 우선순위가 높은 순으로 데이터를 출력 ▸프로그램을 작성할 때 프로그램에 따라 적합한 자료구조를 사용 # Queue()로 큐 만들기 imp..

파이썬 2022.04.17

[자료구조] 배열 array

1. 배열 ▸데이터를 나열하고 각 데이터를 인덱스에 대응하도록 구성한 자료구조 ▸파이썬에서는 리스트 타입이 배열 기능을 제공함 ​ 1-1 배열이 필요한 이유 ▸같은 종류의 데이터를 효율적으로 관리하기 위해 사용 ▸같은 종류의 데이터를 순차적으로 저장 ▸빠른 접근이 가능 (인덱스 번호로 접근) ​ 1-2 배열의 단점 ▸데이터의 추가/삭제가 어려움 ▸미리 최대 길이를 설정해야 함 # 1차원 배열: 리스트로 구현 arr_list = [1,2,3,4,5] print(arr_list) # 2차원 배열: 리스트로 구현 arr_list = [[1,2,3], [4,5,6], [7,8,9]] print(arr_list) print(arr_list[0]) print(arr_list[0][0]) print(arr_list[..

파이썬 2022.04.16

[자료구조] 자료구조와 알고리즘

1. 자료구조 ▸용어: 자료구조, data structure ▸대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조를 의미 ▸코드상에서 효율적으로 데이터를 처리하기 위해, 데이터의 특성에 따라 체계적으로 구조화해야 함 ​ 1-1 대표적인 자료구조 ▸배열, 스택, 링크드리스트, 해쉬테이블, 힙 등 2. 알고리즘 ▸용어: 알고리즘, algorithm ▸어떤 문제에 대해 특정한 "입력"을 넣으면 원하는 "출력"을 얻을 수 있도록 만드는 프로그래밍 3. 자료구조와 알고리즘이 중요한 이유 -> 어떤 자료구조와 알고리즘을 쓰느냐에 따라 프로그램의 성능의 차이가 많음 4. 파이썬을 활용한 자료구조와 알고리즘 ▸어떤 언어로든 자료구조와 알고리즘은 익힐 수 있음 ▸예전에는 C언어 또는 C++로만 작성하도록 하는 경우..

파이썬 2022.04.16

[자료구조] 코랩이란?

1. 코랩의 성능 - os 환경 -cpu 사양 -memory 사양 -python 버전 2. 셀의 종류 1) 코드 셀: 코드 실행을 위한 셀 2) 텍스트 셀: 주석을 달거나 설명, 문구 등을 달기 위한 텍스트 전용 셀 2-1 셀의 삽입 방법 ▸상단의 +코드, +텍스트 버튼을 눌러 삽입 ▸코드 셀 위에 삽입 (컨트롤 + M, A) ▸코드 셀 아래 삽입 (컨트롤 + M, B) 2-2 셀의 변경 방법 ▸코드 셀을 텍스트 셀로 변경 (컨트롤 + M, M) ▸텍스트 셀을 코드 셀로 변경 (컨트롤 + M, Y) 2-3 셀의 삭제 ▸우측의 휴지통 아이콘을 클릭하여 삭제 ▸컨트롤 + M, D 2-4 실행과 출력 ▸컨트롤 + 엔터: 해당 셀을 실행하고 커서는 해당 셀에 남음 ▸쉬프트 + 엔터: 해당 셀을 실행하고 커서는 ..

파이썬 2022.04.16

[파이썬 기초] 파일 입출력

프로그래밍에서 파일을 다룰 때는 일반적으로 1. 파일을 열기 2. 파일에 어떤 내용을 쓰거나 읽기 3. 파일을 닫기 순서로 진행 score_file = open("score.txt", "w", encoding="utf8") # score.txt파일을 쓰기("w") 모드로 열기 print("수학:0", file=score_file) #score.txt파일에 내용 쓰기 print("영어:50", file=score_file) #socre.txt파일에 내용 쓰기 score_file.close() #socre.txt파일 닫기 score_file = open("score.txt", "a", encoding="utf8") #score.txt 파일을 쓰기("a")모드로 열기 score_file.wirte("과학:80..

파이썬 2022.04.15