라이브러리 사용하기
Python에서 제공하는 기본적인 기능 들이 있긴하지만 Python은 기계학습을 위해 만들어진 언어가 아니기 때문에
데이터 처리와 기계학습을 도와주는 프로그램을 추가로 설치하고 불러와서 사용해야 합니다.
이러한 Python 기본 기능 이외에 특수한 목적을 위해서 설치해서 사용하는 프로그램을 일반적으로 라이브러리라고 합니다.
라이브러리를 사용하기 위해서는 해당 라이브러리를 먼저 불러와야 합니다.
그리고 불러온 라이브러리에서 정의한 속성과 함수를 사용하여 필요한 기능을 구현합니다.
이번 실습에서는 라이브러리를 불러오는 방법, 라이브러리에 정의된 기능 찾는 방법 등을 소개하고 라이브러리를 사용하여 데이터를 처리하고 시각화 해 보도록 하겠습니다.
라이브러리 불러오기
라이브러리는 import 혹은 from import로 불러올 수 있습니다.
as라는 키워드를 사용해서 불러온 라이브러리에 별명(alias)를 붙이고 사용할 수 있습니다
혹은 from ... import ... 를 사용하여 라이브러리의 해당 기능만들 불러서 사용할 수 있습니다
객체(Object)
라이브러리를 사용한다고 하는 것은 라이브러리 내의 객체를 사용한다는 것으로 이해하셔도 됩니다.
객체는 속성(attributes)와 기능(functions)의 묶음 이며 속성 = 변수, 기능 = 함수로 생각하시면 됩니다.
생성된 객체의 종류는 type함수로 체크할 수 있습니다
객체의 속성값을 읽어옵니다
객체의 함수를 이용하여 기능을 수행합니다
기술 문서
라이브러리에서 제공하는 객체 사용법과 예제들을 기술한 문서 모음입니다. 특정 라이브러리의 객체를 사용하기 위해서는 이 문서를 참조합니다.
NumPy 문서
Matplotlib 문서
pandas 문서
scikit-learn 문서
NumPy
NumPy 배열 생성
Python 리스트를 이용하여 NumPy 배열(array)를 생성합니다.
물론 2차원 배열 생성도 가능합니다.
NumPy에서는 배열을 만들기 위한 많은 함수를 제공합니다.
NumPy 배열 생성 해보기
정답
생성된 배열의 shape을 출력 해 봅니다.
NumPy 배열 인덱싱
1차원 배열에서 값을 읽는 방법은 Python list에서 읽는 방법과 동일합니다
2차원 배열에서 값을 읽기 위해서는 어떻게 해야 할까요?
예를들어 위에서 생성한 board에서 2를 읽어오고 싶다면 어떻게 해야 할까요?
board 안에 있는 배열을 변수로 바꿔 보겠습니다
board[0]를 하면 어떤 값이 나올까요? 그렇습니다 r0에 들어있는 배열이 나오겠죠.
이제 board[0]를 변수 c에 할당해 볼까요. 이제 c는 1차원 배열이 되었습니다.
1차원 배열에서 인덱싱은 Python list의 인덱싱과 동일하다는 것을 위에서 배웠죠?
이제 c에서 2를 가져오기 위해서는 c[1]을 가져오면 됩니다.
위의 과정을 정리하면 아래와 같이 표현할 수 있겠죠. 한번 원하는 값이 나오는지 실행 해 볼까요
NumPy에서는 이렇게 인덱싱할 수도 있습니다
NumPy 배열 인덱싱 해보기
정답
m =
NumPy 배열 슬라이싱
슬라이싱(slicing)을 이용하여 특정 row, column 데이터를 가져올 수 있습니다
슬라이싱을 사용하여 여러개의 row, column을 가져올 수도 있습니다
a =
여러개의 rows, columns을 읽어보도록 하겠습니다.
NumPy 배열 슬라이싱 해보기
정답
a =
NumPy 배열 연산
NumPy 배열에 대해서 (+ - * /) 연산자를 이용하여 사칙 연산을 할 수 있습니다. 이때 연산은 각 요소(element) 단위로 적용됩니다.
NumPy에서 제공하는 함수(add, subtract, multiply, divide)를 사용하여 연산 할 수 도 있습니다
벡터 내적, 매트릭스 벡터 곱 혹은 매트릭스 간의 곱을 계산하기 위해서는 어떻게 해야 할까요?
numpy의 dot 함수를 사용합니다
마지막으로 NumPy와 같은 라이브러리를 쓰면 어떤 장점이 있는지 예제를 통해서 살펴 보겠습니다
Matplotlib
matplotlib을 사용하여 그래프를 그릴 수 있습니다.
(x, y) = ((1, 2), (2, 4), (3, 6)) 그래프를 그려봅니다.
이미지도 그릴 수 있습니다.
Matplotlib 해보기1
정답
scatter 함수를 사용하여 산점도(scatter plot)를 그려봅니다
Matplotlib 해보기2
정답
싸인, 코싸인 그래프를 그려보자
xlabel 함수
ylabel 함수
title 함수
legend 함수
pandas
pandas.Series
pandas.Series를 이용하여 1차원 배열을 만들어 봅니다
series의 값은 다음과 같은 방법으로 가져 올 수 있습니다
pandas.Series 해보기
정답
index가 ('uno', 'dos', 'tres')이고 값이 (1, 2, 3)인 pandas.Series를 만들어 봅시다
pandas.DataFrame
pandas.DataFrame을 이용하여 테이블을 만들고 값을 확인해 봅니다
위와 같이 pandas.DataFrame은 열(column) -> 행(row) 순서로 읽을 수 있습니다.
pandas.DataFrame 해보기
정답
table에서 5값을 가져오려면 어떻게 해야 할까요?
loc
또는 pandas.DataFrame.loc 함수를 이용해서 값을 읽어올 수 있습니다.
loc함수는 라벨 기반의 인덱싱 함수이며 loc[{row 인덱스}, {column 인덱스}]로 값을 읽어올 수 있습니다.
라벨 인덱싱을 이용한 슬라이싱도 가능하며 list를 이용하여 특정 라벨 값만 가져 올 수도 있습니다
iloc
pandas.DataFrame.iloc는 loc와 마찬가지로 인덱싱 함수이며 라벨이 아닌 정수 인덱스를 사용합니다
loc와 동일하게 슬라이싱이 가능하며 리스트도 특정 데이터만 가져올 수 있습니다.
CSV 파일 데이터 읽기/그리기
데이터를 자동으로 다운로드하는 코드를 미리 구현해 놓았습니다. 아래 코드를 실행하면 'population_profit.csv'파일을 다운로드 받습니다.
pandas-CSV
pandas를 이용하여 csv파일을 읽고 DataFrame에 저장 해 봅니다.
pandas.read_csv 함수
pandas-CSV 해보기
정답
5번째 도시의 population, profit 출력하려면 어떻게 해야 할까요?
matplotlib으로 그래프 그리기
정답
population을 x 데이터, profit을 y 데이터로 하는 산점도 그래프(scatter graph)를 그려봅니다.
대용량 CSV 파일
2017년9월 ~ 2018년9월 아파트 실거래 가격 데이터를 다운로드 받습니다.
데이터가 어떻게 구성 되어 있는지는 data1, data2에서 보실 수 있습니다.
다운로드 받은 csv 파일을 읽고 하나의 DataFrame으로 통합합니다
describe() 함수를 통하여 number 형식의 모든 column 데이터 통계를 확인 할 수 있습니다
특정 column의 통계를 보기위해서는 아래와 같이 하시면 됩니다.
'거래금액' column의 통계값을 해당 함수를 이용해서 각각 뽑아보도록 하겠습니다.
특정 조건을 만족하는 데이터만 필터링 하는 방법을 알아보도록 하겠습니다.
전용면적이 99.1736
서울시 소재 집 데이터만 가져오기 위해서는 어떻게 해야 할까요?
'시군구' column 데이터를 보시면 '서울특별시'로 시작하는 것을 보실 수 있습니다.
그러면 서울시에 있는 30평 이상의 집 데이터만 보기위해서는 어떻게 해야 할까요?
데이터를 특정 column 값에 의해서 정렬해서 보기 위해서는 sort_values() 함수를 사용하시면 됩니다
'건축년도' 오래된 순으로 정렬하고 만약 '건축년도'가 동일한 경우 '계약년월'이 빠른 순으로 정렬하는 코드입니다.
pivot table 기능도 pandas를 이용해서 만들 수 있습니다. pivot_table() 함수를 이용하시면 됩니다.
서울에 있는 아파트를 행정구역, 계약년월 별로 실거래 가격의 평균을 만드는 방법입니다.
위의 지역별 서울 평균 실거래가 데이터를 이용하여 서울시 강남구 개포동 (첫번째 row) 평균 거래가 그래프를 그려 보겠습니다.
토론이 없습니다