Yet Never Lose Faith

- Good to Great , Jim Collins

How To Preprocess Image Data 자세히보기

Deep Learning/[Books] Do it! 정직하게 코딩하며 배우는 딥러닝 입문

5. 머신러닝, 딥러닝 구현을 위한 기초 패키지 2가지 (numpy, matplotlib)

Kellyyyy 2020. 6. 18. 08:00

 

이번 포스팅에서는 머신러닝, 딥러닝을 구현하기 위해

기초적으로 알아둬야하는 패키지 2가지를 알아보겠다.

 

패키지란 특정 기능을 구현하기 위한 함수들의 모음, 즉 라이브러리 정도로 생각하면 된다.

 


 

| 1. numpy(넘파이)

 

넘파이 패키지는 파이썬의 핵심 패키지 중 하나이다.

넘파이 패키지는 아주 방대하지만 이번 포스팅에서는 머신러닝,딥러닝을 위한 필수 기능만을 다룬다.

 

넘파이를 통해서 다차원 배열을 구현하고, 

배열을 이용한 다양한 다양한 통계 및 수학함수를 사용할 수 있다.

 

사실 다차원 배열을 구현하기 위해서는

파이썬의 기본 자료구조 중 하나인 리스트를 사용하는 방법도 있다.

 

하지만 파이썬 리스트로 만든 배열은 

배열의 크기가 커질 수록 성능이 떨어진다는 단점이 있다.

 

넘파이는 저수준 언어로 다차원 배열을 구현했기 때문에

크기가 커져도 높은 성능을 보장한다.

 

또한 배열과 관련된 다양한 통계 및 수학 함수를 사용할 수 있다는 장점도 있다.

 

몇 가지 실습을 진행해보자.

 

1) 코랩에서 넘파이 import 및 버전 확인하기

 

파이썬 패키지를 사용하기 위해서는 설치 후에 해당 파일에 import 해야한다.

 

하지만 Colab에는 기본적으로 numpy 패키지가 설치되어있기 때문에

import만으로 사용할 수 있다.

 

 

import numpy as np
print(np.__version__)

 

 

 

 

* 패키지를 import 할 때 as 키워드를 사용하여 별칭을 사용할 수 있다.

조금이라도 줄여서 쓰기 위한 방법이다.

위의 예시에서는 별칭을 np로 사용했다.

 

2) array() 함수로 2차원 배열 만들기

 

배열의 요소들을 array() 함수의 인자로 전달하여 만든다. 

나는 행 2개, 열 3개인 2*3 짜리 2차원 배열을 만들었다.

 

 

my_arr = np.array([[10,20,30],[40,50,60]])
print(my_arr)

 

 

 

 

실행 결과를 보면 행, 열을 잘 정리해서 보여주고 있다.

 

3) numpy 배열에서 요소 선택하기

 

배열이름[행 인덱스][열 인덱스]으로 요소를 선택할 수 있다.

인덱스는 0부터 시작한다.

 

첫번째행의 세번째 요소를 선택해보겠다.

 

 

my_arr[0][2]

 

 

 

 

 

4) numpy 내장 함수 사용하기

 

넘파이는 배열에 대한 여러 수학 함수를 제공한다.

예시로 배열의 합을 계산하는 sum()을 사용해보겠다.

 

numpy의 sum()함수를 를 사용하지 않고 배열의 합을 계산하기 위해서는

for문을 작성해야하기 때문에 훨씬 편리하다고 할 수 있다.

 

 

np.sum(my_arr)

 

 

 

 

| 2. matplotlib(맷플롯립)

 

matplotlib은 파이썬의 표준 그래프 패키지이다.

데이터 분석 및 머신러닝을 하다보면 그래프를 그려서 확인해야하는 경우가 많은데,

이때 필요한 대부분의 그래프 형태를 지원한다.

 

matplotlib도 코랩에 설치되어있기 때문에 import 하여 사용하면 된다.

 

 

import matplotlib.pyplot as plt

 

 

 

 

이번 포스팅에서는 간단한 그래프 2가지 종류를 그려보겠다.

 

1) 선 그래프

 

선 그래프를 그리려면 x축의 값과 y축의 값을 맷플롯립의 plot()함수에 전달해야한다.

그 후에 show() 함수를 통해 화면에 그래프를 출력하면 된다.

 

 

plt.plot([1,2,3,4,5],[1,8,27,64,125])
plt.show()

 

 

 

 

2) 산점도

 

산점도는 데이터의 x축, y축 값을 이용하여 점으로 그래프를 그린 그래프를 의미한다.

scatter()함수에 x축, y축 값을 전달하여 그릴 수 있다.

 

sho()함수를 사용하지 않아도 그래프가 출력되긴 하지만

사용하면 더 깔끔하고 보기 좋은 그래프가 그려진다.

 

 

plt.scatter([1,2,3,4,5],[1,8,27,64,125])
plt.show()

 

 


 

마지막으로 책 <Doit! 정직하게 코딩하며 배우는 딥러닝 입문>에서

데이터 분석의 중요성에 대한 말하는 문구를 소개하며 포스팅을 마친다.

 

 

데이터 분석과 그래프 도구는 뗄래야 뗄 수 없는 사이입니다.
데이터를 시각화하면 데이터에서 직관을 얻기가 쉽습니다.