Python 튜토리얼 - Lv1

곰주·2022년 10월 4일
1
post-thumbnail

안녕하세요... 갑자기 스위프트 하다가 뭔 파이썬...이냐 하겠지만...
S/W프로젝트를 위한 기초 지식이 필요하다는 생각이 들어 준비해 왔습니다.

시작해 볼까용~...

아!! 시작하기 전에! 머신러닝에 대해 조금만 알아보도록 하자!

머신러닝이란

머신러닝은 인공지능(AI)의 하위 집합이다. 학습과 개선을 위해 명시적으로 컴퓨터를 프로그래밍 하는 대신, 컴퓨터가 데이터로 학습하고 경험을 통해 개선하도록 훈련하는 데 중점을 둔다. 머신러닝에서 알고리즘을 대규모 데이터 세트에서 패턴과 상관관계를 찾고 분석을 토대로 최적의 의사결정과 예측을 수행하도록 훈련된다. 머신러닝 애플리케이션은 적용을 통해 개선되며, 이용 가능한 데이터가 증가할수록 더 정확해 진다. 머신러닝의 응용 분야는 주거 공간부터 장바구니, 엔터테인먼트 미디어, 의료에 이르기까지 우리 주변에 퍼져 있다.

참고 사이트

정리하여 말하자면, 머신러닝이란 컴퓨터가 스스로 학습할 수 있도록 도와주는 알고리즘이나 기술을 개발하는 분야이다. 이러한 머신러능은 일반적으로 다음과 같은 순서대로 동작한다.

(1) 일정량 이상의 샘플 데이터 입력.
(2) 입력받은 데이터를 분석하여 일정한 패턴과 규칙 검출.
(3) 찾아낸 패턴 및 규칙을 통해 의사결정 및 예측 등을 수행.

이러한 수행 순서를 바탕으로 머신러닝을 더 쉽게 정의하자면, 수많은 데이터를 학습하여 일정한 패턴을 찾아내고 그것을 활용하는 것이라고 말할 수 있다.

1. Python 라이브러리 불러오기

데이터를 분석하기 위해 불러오고, 조작하는 등 핸들링을 하려면 도구가 필요합니다. 대표적으로 pandas, numpy, matplotlib 등이 있다. 머신러닝을 하려면 최우선적으로 이러한 도구, 즉 라이브러리를 불러와야 한다!

자! 나는 이번 플젝에서 필요한 라이브러리가 pandas와 numpy인데, 이 친구들에 대해 알아보자.

Numpy

Numpy란 다차원 배열을 쉽게 처리하고, 효율적으로 사용할 수 있도록 지원하는 파이썬의 패키지이다. 데이터 구조 이외에도 수치 계산을 위해 효율적으로 구현된 기능을 제공한다. 데이터 분석 시 Pandas와 함께 자주 사용된다.

그렇다면 Numpy를 사용하는 이유는 무엇일까?

데이터란 이미지, 오디오, 텍스트, 숫자 등 다양한 형태와 크기로 존재한다. 사람들은 데이터를 이렇게 실질적, 물질적으로 바라보며 이해하지만, 컴퓨터는 오로지 0 또는 1 만 이해한다. 실제로 데이터 분석을 수행하기 위해 전제 조건은 컴퓨터가 이해할 수 있도록 데이터를 숫자 형식으로 변환하는 것이다. 여기서 데이터를 숫자의 배열로 볼 수 있는데, 이 배열을 효율적으로 저장 및 조작할 수 있어야 하는 요구 사항으로 Numpy 패키지가 나오게 된 것이다. 배열의 크기가 작으면 문제가 되지 않지만, Numpy 배열은 데이터의 크기가 커질수록 저장 및 가공을 하는 데 효율성을 보장한다.

참고 사이트

Pandas

Pandas는 쉽고 직관적인 관계형 또는 분류된 데이터로 작업할 수 있도록 설계된 패키지이다. 빠르고 유연하며, 표현이 풍부한 데이터 구조를 제공한다는 장점이 있다. 또, 어떤 언어로도 사용할 수 있는 가장 강력하고 유연한 오픈 소스 데이터 분석 및 조직 도구가 되는 더 넓은 목표를 가지고 있다고 한다. 또, Numpy를 기반으로 하며, 다른 많은 타사 라이브러리와 잘 통합되도록 설계되었다.

Pandas는 다음과 같은 종류의 데이터에 적합한 분석 패키지이다.

(1) SQL 테이블 또는 Excel 스프레드 시트에서와 같이 이질적으로 유형이 지정된 열이 있는 테이블 형식 데이터
(2) 정렬되고 정렬되지 않은 시계열 데이터
(3) 행 및 열 레이블이 포함된 임의의 행렬 데이터
(4) 다른 형태의 관찰 / 통계 데이터 세트

Pandas는 다음의 수행 과정에 적합하다.

(1) 부동 소수점 데이터뿐만 아니라 누락된 데이터(NaN)를 쉽게 처리
(2) DataFrame 및 상위 차원 개체에서 열을 삽입 및 삭제
(3) 입력하고자 하는 내용을 레이블 세트에 이름으로 정렬하거나 사용자가 레이블을 무시하고 Series, DataFrame 등으로 자동으로 데이터를 계산에 사용할 수 있다.
등등......

참고 사이트

이렇게 짧게 Numpy와 Pandas에 대해 알아보았다. 이제 이러한 라이브러리를 불러오는 방법에 대해 알아보자!

import [라이브러리] as [사용할 이름]

import pandas as pd
import numpy as np


2. Python 파일 불러오기 (read_csv)

파이썬에서 데이터 파일(csv)을 불러오기 위해서는 pandas 라이브러리를 이용해야 한다. 아래 코드와 같이 먼저 pandas를 import 한 후에 read_csv() 함수를 통해 파일을 불러 올 수 있다.

import pandas as pd
data = pd.read_csv('파일경로/파일이름.csv')



3. Python 행/열 개수 확인하기 (shape)

read_csv()를 통해 csv 파일을 pandas 라이브러리에서 제공하는 DataFrame 객체로 변환했다면, 우선 불러온 데이터의 행과 열의 개수를 shape attribute로 관찰할 수 있다.

[DataFrame변수명].shape
import pandas as pd

data = pd.DataFrame({
	'name' : ['Han', 'Gom', 'Lee'],
    'age' : [21, 19, 22],
    'class' : 'C', 'B', 'A']
    })
data.shape
<실행결과>
(3, 3)



4. Python 데이터 확인하기 (head())

Pandas 라이브러리를 이용하여 데이터를 확인하는 방법은 여러 가지가 있지만, 그중 가장 대표적인 메서드는 head() 메서드이다. 이 메서드는 데이터 전부를 보여 주지 않고, 데이터의 상단 부분만 출력하여 보여 준다. head() 메서드와 유사한 메서드에는 tail() 메서드가 있다. 이 메서드는 데이터의 하단 부분을 출력하여 보여 준다.

import pandas as pd

train = pd.read_csv('./data/train.csv')
train.head()  # train 데이터의 상단 5개 행 출력



5. Python 결측치 확인하기 (is_null())

여기서 결측치(Missing Value)란! 말 그대로 데이터에 값이 없는 것을 뜻한다. 줄여서 NA라고 표현하기도 하고, 다른 언어에서는 Null이란 표현을 많이 쓴다. Pandas에서 결측치를 NaN 값으로 표현한다. Pandas에서 isnull()메서드를 사용하면, DataFrame에서 NaN값을 확인할 수 있다. is_null() 메서드는 DataFrame에서 데이터가 NaN 값이면 True, 그렇지 않으면 False로 값을 리턴한다.

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'name':['Han','Gom', 'Lee'],
    'age':[21, np.nan, 22,
    'class':[np.nan, np.nan, 1]
    })
df.isnull()

아! is_null() 메서드 뒤에 sum() 메서드를 추가해 주면 DataFrame의 각 열 별 결측치의 수를 확인할 수 있다!



참고 사이트 : 데이콘

profile
아기코쟁이 🧑🏻‍💻

0개의 댓글