▶ 파이썬 기능 이해

- Numpy : 데이터 조작, 처리 → 다른 패키지의 기본이 되는 패키지

- Pandas : Numpy로 만든 패키지, 쓰기 편하고 직관적

- Matplotlib : 시각화 관련, 코드를 가져와서 실행할 수 있으면 됨

- Tensorflow : 딥러닝을 위한 라이브러리, 패턴 익히기

 

▶ Numpy

▷ Jupyter notebook 사용법

명령 프롬프트에서 jupyter notebook 입력
New - python3

- [SHIFT] + [ENTER] = Run

 

▷ Numpy

- jupyter 가상환경에서 만들어진 파일 확장자명 : .ipynb

 

★ 배열을 잘 다루자!

※ row x col

→ Numpy 패키지를 통해 row by col 형식으로 사용할 수 있음

① 만드는 방법 (확인)

② 하나 이상의 데이터 선택 (검색)

③ 두 데이터를 합치는 방법

④ 하나의 데이터를 쪼개는 방법

 

1) Numpy 사용법

import numpy as np

→ numpy 패키지 가져오기, np라는 약칭으로 사용

 

2) Numpy 배열

- 벡터 : 1차원 배열

- 매트릭스 : 2차원 배열 (거의 많이 사용)

 

3) 배열 생성하기

1. 파이썬 리스트 이용: np.array([list])
2. 0또는 1로 채우기: np.zeros(), np.ones()
3. 일정한 간격을 가지는 숫자 배열: np.arange()
4. 일정 범위 안에서 일정 갯수를 가진 배열: np.linspace()
5. 랜덤 값을 가지는 배열: np.random.rand() / randint() / randn()
6. 등등

악성코드 개수 판단 시 사용

- np.arrange(start,end) : start ~ end-1

- np.random() : 임의의 값을 만들어 좌표상에 찍어놓고 테스트할 때 사용

 

4) 배열 요소 접근 및 범위 선택

1. 배열 요소 접근 방식은 파이썬 리스트와 동일
2. 범위 접근자(:) 사용 시 범위에 주의하기 ( 1:5 는 1부터 4까지를 의미 )
3. 배열 복사(메모리 문제 방지): XXX.copy()
4. 특정 조건에 해당하는 데이터 선택은 인덱스 사용

배열 요소 접근

 

5) 배열 다루기

1. 배열 모양 확인: XXX.shape() 
2. 배열 내의 데이터 자료형 확인: XXX.dtype
3. 배열 모양 변경: XXX.reshape()
4. 데이터 타입 변경: XXX.astype()

☆ 모든 데이터 로드 후 불러온 데이터의  모양과 크기를 확인하기 위해 shape()를 해주어야 함

- np.concatenate() : 배열 합치기

- rst[] : 배열 쪼개기

 

▶ Pandas

▷ Numpy의 한계점

→ 데이터를 인덱스로만 접근할 수 있음

 

▷ Pandas

- dataframe(numpy+name) : 배열의 row와 col의 이름을 설정할 수 있음

- file load, save

① 만드는 방법 (확인)

② 하나 이상의 데이터 선택 (검색)

③ 두 데이터를 합치는 방법

④ 하나의 데이터를 쪼개는 방법

 

1) pandas 사용법

import pandas as pd

→ pandas 패키지 가져오기, pd라는 약칭으로 사용

 

2) 파일 불러오기/저장하기

1. CSV  : pd.read_csv() / pd.to_csv()
2. EXCEL: pd.read_excel() / pd.to_excel()
3. HTML : pd.read_html() / pd.to_html()
4. SQL  : pd.read_sql() / pd.to_sql()

→ csv, excel, html, sql 소스에서 데이터를 읽어오는 함수 제공

→ 불러온 데이터는 pandas의 dataframe 객체 형식으로 자동 저장

 

3) pandas 자료형

- 1차원 : Series → pd.Series()

- 2차원 : Dataframe → pd.DataFrame()

 

4) DataFrame

→ 컬럼 차원의 접근이 유리

1. DataFrame = Series + Series + ... + Series
2. 거의 모든 데이터 처리에 DataFrame 사용
3. 데이터프레임 정보 보기: head(), shape(), info(), describe()
4. 특정 요소에 접근하기
5. 데이터프레임 쪼개고 합치기
6. 누락 데이터 처리하기

- head() : 첫 5줄만 출력

- shape() : 데이터의 전체적인 개수, 속성의 개수

- info() : null값, 자료형 확인 가능

- describe() : 숫자형으로 되어 있는 컬럼의 기본적인 통계수치

 

5) DataFrame Row 접근

1. loc : 라벨값 기반의 2차원 인덱싱
2. iloc : 순서를 나타내는 정수 기반의 2차원 인덱싱 (일반 배열처럼 사용)

 

6) DataFrame 합치기

1. 새로운 col 또는 row 추가
2. col을 기준으로 데이터프레임 병합
3. row를 기준으로 데이터프레임 병합

→ pd.cocat()

 

7. 결측 데이터 처리

1. 데이터프레임에 결측 데이터가 있는지 확인
2. 결측 데이터 처리를 어떻게 할 것인가?
    1) 데이터가 충분히 많은 경우: 결측 데이터를 포함한 row를 제거
    2) 데이터 하나 하나가 소중한 경우: 결측값을 다른값으로 대체

- isnull() : 결측값이 있는지 확인

- dropna() : 결측값 제거

- fillna() : 특정 값으로 결측값 대체

 

▷ numpy vs pandas

- numpy : ml, dl

- pandas : static, da

 

▶ Matplotilib

→ 데이터를 가지고 그리는 방법보다 무엇을 그려야할지가 더 중점

 

1) Matplotlib 사용하기

import matplotlib.pyplot as plt

 

2) 기본 그래프 그리기

plot() : 그림 그려주는 함수, show() : 그림을 띄워줌

 

3) 그래프 옵션 조정

1. plot() 옵션
    - color : 선 색깔 변경  
    - marker : 데이터 변화(꺾임) 부분 표시
    - label : 범례값 지정
    - linestyle : 선 모양

2. 그래프 옵션
    - plt.xlabel() : x축 설명
    - plt.ylabel() : y축 설명
    - plt.title()  : 그래프 제목
    - legend() : 범례 표시
    - plt.xlim() : x축 범위
    - plt.ylim() : y축 범위

 

▶ Pandas + Matplotilib

데이터를 데이터프레임 형식으로 저장할 경우 쉽게 시각화를 할 수 있음

→ df.plot.area, df.plot.barh, df.plot.density, df.plot.hist, df.plot.line, df.plot.scatter, df.plot.bar, df.plot.box, df.plot.hexbin, df.plot.kde, df.plot.pie

import matplotlib.dates as mdate
%matplotlib inline

'WINS STUDY > AI 사이버보안' 카테고리의 다른 글

Week05_악성코드  (0) 2022.07.13
Week04_모델 평가 지표  (0) 2022.07.13
Week04_통계학과 머신러닝  (0) 2022.07.07
Week02_머신러닝  (0) 2022.06.04
Week01_인공지능 시대와 정보 보안  (0) 2022.05.27

+ Recent posts