▶ 파이썬 기능 이해
- Numpy : 데이터 조작, 처리 → 다른 패키지의 기본이 되는 패키지
- Pandas : Numpy로 만든 패키지, 쓰기 편하고 직관적
- Matplotlib : 시각화 관련, 코드를 가져와서 실행할 수 있으면 됨
- Tensorflow : 딥러닝을 위한 라이브러리, 패턴 익히기
▶ Numpy
▷ Jupyter notebook 사용법
- [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) 기본 그래프 그리기
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 |