목록파이썬 (149)
차밍이
버블 정렬 두 인접한 원소를 검사하면서 정렬하는 방법 앞에서부터 두 개의 데이터를 비교하면서 정렬한다. 한 번 실행하면 가장 큰 값이 가장 뒤로 정렬되는 방식이다. 두 번째 실행하면 그다음 큰 값이 가장 뒤에서 한번 전까지 데이터를 비교하며 정렬하게 된다. 시간 복잡도가 에 해당되므로 느리지만, 단순하다. data_list = [9, 7, 5, 3, 1] def bubbleSort(data_list): for i in range(len(data_list)): swap = False for j in range(len(data_list)-1-i): if data_list[j] > data_list[j+1]: swap = True data_list[j], data_list[j+1] = data_list[j+1..
목차 1. 삽입 정렬 방식 두 번째 인덱스에서부터 시작하여 데이터를 확인한다. 앞에 있는 데이터들과 하나씩 비교하면서 자신의 자리를 찾아나간다. 가장 작은 값이면 맨 앞까지 계속 이동한다. 혹은 자기보다 작은 데이터가 앞에 있으면 그 뒤쪽으로 데이터를 삽입한다. 2. 소스 코드 import random data_list = random.sample(range(100), 10) print(data_list) >>> [24, 62, 17, 81, 74, 55, 92, 93, 82, 53] 랜덤으로 정렬하기 위한 숫자 데이터 리스트를 생성한다. for i in range(1, len(data_list)): for j in range(i-1,-1,-1): if data_list[j] > data_list[j+1..
목차 다양한 링크드 리스트 구조 1. 더블 링크드 리스트 (Doubly linked list) 더블 링크드 리스트 기본 구조 이중 연결 리스트라고도 함 단방향 링크드리스트인 경우 가장 끝 노드를 찾기 위해서는 처음부터 끝까지 모든 노드를 지나서 검색해야하는 한계가 있다. 데이터가 뒷쪽에 더 가깝다는 것을 안다면 뒤에서부터 검색하면 더 빠르게 접근할 수 있다. 장점 : 양방향으로 연결되어 있어서 노드 탐색이 양쪽으로 모두 가능 단점 : 앞쪽 주소와 뒷쪽 주소를 모두 저장해야함. 저장 효율이 낮아진다. ![](https://www.fun-coding.org/00_Images/doublelinkedlist.png) (출처: wikipedia, https://en.wikipedia.org/wiki/Linked\..
목차 대표적인 데이터 구조: 링크드 리스트 (Linked List) 1. 링크드 리스트 (Linked List) 구조 연결 리스트라고도 함 배열은 순차적으로 연결된 공간에 데이터를 나열하는 데이터 구조 링크드 리스트는 떨어진 곳에 존재하는 데이터를 화살표로 연결해서 관리하는 데이터 구조 본래 C언어에서는 주요한 데이터 구조이지만, 파이썬은 리스트 타입이 링크드 리스트의 기능을 모두 지원 링크드 리스트 기본 구조와 용어 노드(Node): 데이터 저장 단위 (데이터 값, 포인터)로 구성 포인터(pointer): 각 노드 안에서, 다음이나 이전의 노드와의 연결 정보를 가지고 있는 공간 배열의 단점 배열의 경우 미리 데이터의 길이를 선언해야한다. 선언한 길이만큼 공간을 미리 차지하고 있다. 데이터가 인덱스에 따..
목차 꼭 알아둬야 할 자료 구조: 스택 (Stack) 데이터를 제한적으로 접근할 수 있는 구조 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조 큐: FIFO 정책 스택: LIFO 정책 1. 스택 구조 스택은 LIFO(Last In, Fisrt Out) 또는 FILO(First In, Last Out) 데이터 관리 방식을 따름 LIFO: 마지막에 넣은 데이터를 가장 먼저 추출하는 데이터 관리 정책 FILO: 처음에 넣은 데이터를 가장 마지막에 추출하는 데이터 관리 정책 대표적인 스택의 활용 컴퓨터 내부의 프로세스 구조의 함수 동작 방식 주요 기능 push(): 데이터를 스택에 넣기 pop(): 데이터를 스택에서 꺼내기 Visualgo 사이트에서..
목차 자료구조란? 자료의 구조, 데이터의 구조 대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조를 의미한다. 코드상으로 얼마나 효율적으로 데이터를 처리하기위해 구조적으로작성하는가를 논하는 것 알고리즘이란? 어떤 문제를 풀기 위한 절차나 방법 자료구조와 알고리즘이 중요한 이유? 어떤 자료구조와 알고리즘을 쓰냐에 따라, 성능이 매우 크게 차이가 발생된다. 프로그래밍을 잘 할 수 있는 기술과 역량을 검증하는 척도로 사용된다. 배열 배열의 장점 데이터의 시작점만 알면 내부의 데이터들의 순서를 바로 알 수 있다. 순차적인 데이터를 손쉽게 다룰 수 있다. 빠르게 데이터에 접근 가능하다. 배열의 단점 데이터가 가변적인 경우 추가나 삭제가 쉽지 않음 최대 길이를 미리 지정해야함 큐 (Queue) 큐의 구조 FI..
Plotly를 사용해서 Line plot을 그려보겠습니다. 1. Plotly Express - Lineplot express 객체를 통해서 lineplot을 그릴 수 있습니다. plotly에 있는 기본 데이터를 가져와서 그려보겠습니다. import plotly.express as px df = px.data.gapminder() df.head() Canada에 해당되는 부분만 선택해서 그래프를 그려보겠습니다. canada = df[df['country']=='Canada'] # 케나다 만 선택 fig = px.line(canada, x="year", # x축 y="lifeExp", # y축 title='Life expectancy in Canada' # Title ) fig.show() 대륙별로 색깔을 ..
Plotly는 매우 쉽고 예쁘고 반응적인 그래프를 그릴 수 있는 라이브러리입니다. 기본적으로 JavaScript를 기반으로 하고 있는 것 같습니다. 파이썬에서 라이브러리를 import해와서 쉽게 사용할 수 있으니 배워서 활용하면 좋을 것 같습니다. Scatter Plot 산점도 Plotly에서 그래프를 그리는 방법이 크게 두가지로 나뉩니다. Express를 통해서 그리는 방법 Graph_objects를 통해서 그리는 방법 1. Express import plotly.express as px # express 통해서 그리기 fig = px.line(x=["a","b","c"], y=[1,3,2], title="sample figure") print(fig) # fig는 JSON형식으로 데이터가 구성된 것을..
목차 아 ~ 이걸 이제야 봤네 ~!!!! 우리 호두 형님의 명대사죠... cufflinks 를 왜 이제야 봤는지 모르겠습니다. 주식 데이터나 기타 지표들을 아주 쉽고 편하게 그릴 수 있었는데, 열심히 해매고 다녔네요. cufflinks라이브러리 자체에서 plotly 와 연동이 되어서 예쁘고 쉽게 그래프를 그려줍니다. 앞으로는 cufflinks를 많이 활용해서 그래플르 그리고 분석을 진행해볼 예정입니다. 1. cufflinks 설치하기 Anaconda Promplt에서 cufflinks와 chart_studio를 설치해줍니다. cufflinks를 파이썬에서 import할 때 chart_studio도 필요하니 미리 설치할때 같이 해주도록 합니다. pip install cufflinks, chart_studi..
목차 이전 글 까지는 matplotlib을 사용해서 그래프를 그렸다면 이번에는 plotly 라이브러리를 활용해서 주식 그래프를 그려보겠습니다. 데이터를 가져오는 부분은 이전의 글을 통해서 확인하실 수 있습니다. [Python] pandas_datareader 코스피 코스닥 지수 데이터 가져오기 // 파이썬 주식투자(1) [Python] KOSPI 이동평균선, 주가 이동평균선 구하기 // 파이썬 주식투자(2) [Python] 캔들 스틱 차트 그리기, Candlestick Chart 그리기 - 파이썬 주식투자(3) 1. Plotly 라이브러리 설치하기 anaconda promplt 혹은 명령 프롬프트에서 간단하게 설치하실 수 있습니다. pip install plotly 2. 삼성전자 데이터 가져오기 항상 K..