728x90

데이터 분석/자료구조(Data structure) 7

파이썬 - Pandas 기초 정리(DataFrame - 3) : inner join / outer join

이제 정말 유용하게 사용되는 Groupby 에 대해 알아볼 차례이다. 이 게시물은 이전 게시물들과 이어진다. (타이타닉 데이터 사용) # groupby df.groupby('Pclass').groups --------------------------------- {1: Int64Index([ 2, 4, 7, 12, 24, 28, 31, 32, 35, 36, ... 854, 857, 858, 863, 868, 872, 873, 880, 888, 890], dtype='int64', name='PassengerId', length=216), 2: Int64Index([ 10, 16, 18, 21, 22, 34, 42, 44, 54, 57, ... 849, 855, 862, 865, 866, 867, 875,..

파이썬 - Pandas 기초 정리(DataFrame - 2)

이전 게시물에 이어서 학습을 진행한다. 데이터를 분석하여 예측을 하기 위해서는 예측하는 데이터와 어떤 컬럼이 관계가 깊은지 알아야 한다. 이런 경우에 알아보는 것 중 하나가 "상관계수" 이다. 상관계수는 -1 ~ 1 사이의 숫자이다. 예를 들어 A 컬럼과 B 컬럼의 상관계수를 알아봤을 때 1에 가깝다면 A가 증가할 때 B 가 증가하는 형태를 이룬다고 볼 수 있고, -1 에 가깝다면 A가 증가할 때 B는 감소하는 추세를 보인다고 볼 수 있다. 만약 0에 가깝다면 A 와 B는 별로 관계가 없다는 것을 깨달을 수 있다. 1. 상관계수 알아보기 import pandas as pd import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline 상..

파이썬 - Pandas 기초 정리(DataFrame - 1)

Pandas 모듈에서 가장 많이 사용되는 것이 DataFrame 이라 해도 과언이 아니다. 저번 게시물에서는 Series(1차원)을 다루었지만 이번에는 DataFrame(2차원)을 다룬다. DataFrame 2차원(row, column) 으로 구성되어 있음 일반적인 데이터(csv 등)가 이런 형식으로 되어 있음 1. DataFrame 만들기 일반적으로 DataFrame 은 key 와 value 로 이루어져 있다. data = {10:['a', 'e', 'f'], 20:['b', 'o', 'q'], 30:['c', 'z', 's']} data_frame = pd.DataFrame(data, index=np.arange(1,4)) data_frame --------------------------------..

파이썬 - Pandas 기초 정리(Series)

파이썬을 사용했을 때 데이터 분석에 빠질 수 없는 부분이 Pandas 모듈이다. 외부 파일을 읽어 분석하는데 주요한 기능들이 많이 저장되어 있다. import pandas as pd 모듈을 불러올 때 "pd" 를 가장 많이 사용하기 때문에 위와 같이 선언한다. 1. Series 기초 1차원 배열을 나타내며, numpy의 ndarray 를 기반으로 함. 0개 이상의 데이터를 가질 수 있다. index 는 0 부터 시작. # 데이터 입력하기 pd.Series([1,2,3,4,5]) --------------------------------- 0 1 1 2 2 3 3 4 4 5 dtype: int64 데이터 [1,2,3,4,5] 라는 1차원 배열을 선언하였더니, 각각의 index 가 같이 출력되는 모습을 볼 ..

파이썬 - Numpy 기초 정리(2)

이전 게시물에서 언급하였듯이 numpy 모듈은 연산하는데에도 장점이 많다. 연산에 대표적으로 더하기(add), 빼기(subtract), 곱하기(multiply), 나누기(divide) 가 있는데, numpy 연산은 ndarray 끼리 가능하기 때문에 일반 list 라면 np.array 를 선언해주어야 한다. 또한, 각각 차원이 같고 모양(shape)이 같은 배열끼리만 연산이 가능하다. # 연산에 필요한 배열 선언 a = np.random.randint(100, size=(3,3)) b = np.random.randint(100, size=(3,3)) print(a) print(b) ----------------------------------------- [[62 77 37] [27 52 30] [ 8 ..

파이썬 - Numpy 기초 정리(1)

데이터 사이언스 분야에서 쉽게 접하는 것이 바로 Numpy 이다. 대체로 다차원 배열(ndarray)을 다룰 때 사용하는 모듈이기도 하다. Numpy 를 깊게 배울 필요는 없지만 이런 기능이 있다고 알아둔다면 나중에 필요한 기능이 생각날 때 떠오를 수 있을 것이다. Numpy 는 list 보다 빠르고 적은 메모리를 사용하여 좀 더 유리하다. 그리고 수학적인 계산(선형대수학, 통계 등)을 위한 함수가 많이 있어 상황에 맞게 유용하게 사용할 수 있다. 1. 다차원 배열 계산 그림과 같은 행렬이 있다고 가정하자. 각 배열의 원소마다 +1 씩 더하고 싶다면 어떤 코드를 작성해야 할까? num = [[1,2,3], [4,5,6], [7,8,9]] for i in range(len(num)): for j in ra..

[자료구조] Heap(힙)

우선 순위 큐를 위한 자료구조 Heap 이란? Heap 이란 자료구소 형태 중 하나로서 우선순위 큐를 위해 사용한다. 예를 들어 최대값 또는 최소값을 계속 반환해야 할 때 효율적이다. import heapq import heapq heapq 모듈을 선언하여 힙 자료구조를 사용할 수 있도록 한다. 기본적인 내장 모듈이므로 따로 다운받을 필요는 없다. heapq.heapify(배열) - 배열을 heap 구조로 변환 heap1 = [1,3,2,6,8,0,6] heapq.heapify(heap1) heap1 ----------------------------------- [0, 3, 1, 6, 8, 2, 6] [1, 3, 2, 6, 8, 0, 6] --> [0, 3, 1, 6, 8, 2, 6] ? 어떤 원리로 ..