Python에 대하여
몬티 파이썬이라는 코메디 그룹에서 이름이 비롯되었습니다. 운영체제에 독립적이며, 적절한 인터프리터만 있다면 작동이 가능합니다. 즉, 별도의 번역과정이 없이 소스코드를 실행시점에서 해석하여 컴퓨터가 처리할 수 있도록 하는 언어입니다.
파이썬은 객체지향 언어로 실행 순서가 아닌 단위 모듈을 중심으로 하며, 동적 타이핑 언어로 프로그램이 실행하는 시점에서 프로그램이 사용해야 할 데이터에 대한 타입을 결정합니다.
운영환경 세팅하기
Jupyter Notebook + Collab 운영환경 세팅
Jupyter Notebook는 IPython 커널을 기반으로 한 대화형 파이썬 셸입니다. 설치시 아래 코드는 miniconda
를 이용했습니다.
1
2
3
conda install jupyter
jupyter notebook
#http://localhost:8888/tree
Colab은 구글이 개발 클라우드 기반의 jupyter notebook입니다.
Anaconda 가상환경 구축하기 아나콘다는 python 라이브러리를 쉽게 설치하고 관리할 수 있게 해주는 도구입니다. 특히 수학, 과학 분야의 여러 패키지를 모아 두어 데이터 사이언스와 머신 러닝 분야의 python 사용을 지원합니다. 뿐만 아니라 좀 더 쉽게 가상환경을 구축할 수 있게 합니다. 아나콘다 설치시 Jupyter
, spyder
, NumPy
, SciPy
, Numba
, pandas
, DASK
, Bokeh
, HoloViews
, Datashader
, matplotlib
, scikit-learn
, H2O.ai
, TensorFlow
, Conda
와 같은 다양한 라이브러리를 제공합니다.
1
2
3
conda create -n {ENV_NAME} python={PYTHON_VERSION}
conda activate {ENV_NAME}
conda deactivate
가상환경이 활성화되어 있는 경우, 그 경로에 라이브러리가 설치되며, 그 가상환경 하에서 주피터 노트북 또한 실행이 가능합니다.
1
2
3
4
pip install --upgrade pip
pip install -r requirements-window.txt
jupyter notebook
기초 문법
변수는 프로그래밍에서 값을 저장하는 장소로 메모리 주소를 가지고 있고, 그 안에 값이 할당됩니다. (폰 노이만 아키텍처)
- 변수명은 알파벳, 숫자, 언더스코어(_)로 선언가능, 대소문자 구분, 예약어는 쓰지 않습니다.
데이터 타입은 integer
, float
, string
, boolean
이 있다.
주요 패키지
NumPy
과학 계산을 위한 라이브러리입니다. 행렬, 배열 처리 및 연산 또는 난수생성에 사용됩니다. 기본적인 코드는 다음과 같고 자세한 내용은 링크를 참조해주세요.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import numpy as np
x = [[1,2,3],[3,4,5]]
np.array(x) # [[1 2 3]
# [3 4 5]]
np.arange(10) # [0 1 2 3 4 5 6 7 8 9]
np.zeros(2,2) # [[0. 0.]
# [0. 0.]]
np.full((2,3),5) # [[5 5 5]
# [5 5 5]]
np.eye(2) # [[1. 0.]
# [0. 1.]]
# 배열 간 연산도 가능합니다
a = np.array([1,2,3])
b = np.array([4,5,6])
c = a+b # [5 7 9]
# c = np.add(a,b)
s = np.sum(a) # 6
Pandas
데이터 처리 및 분석 라이브러리입니다. 행과 열로 된 데이터 객체를 만들거나 대용량 데이터를 처리하는데 편리하게 사용됩니다. Series: 1차원, DataFrame: 2차원, Panel: 3차원 자료구조의 종류가 있습니다. 기본적인 코드는 다음과 같고 자세한 내용은 링크를 참조해주세요.
import pandas as pd
- pandas 라이브러리를 가져옵니다.
pd.DataFrame()
- 데이터프레임을 생성하는 함수입니다. 데이터를 입력하여 행과 열로 구성된 테이블 형태의 데이터 구조를 만듭니다.
df.head()
- 데이터프레임의 처음 5개 행을 반환합니다. 괄호 안에 숫자를 지정하여 반환할 행의 개수를 조정할 수 있습니다.
df.shape
- 데이터프레임의 행과 열의 개수를 반환합니다. (행의 수, 열의 수)의 형태로 반환됩니다.
df.columns
- 데이터프레임의 열 이름을 반환합니다.
df.info()
- 데이터프레임의 기본 정보를 요약하여 출력합니다. 열의 데이터 타입, 결측치 여부 등을 확인할 수 있습니다.
df.describe()
- 데이터프레임의 기술 통계 정보를 출력합니다. 열에 대한 개수, 평균, 표준편차, 최소값, 최대값 등을 제공합니다.
df.isnull()
- 데이터프레임의 각 요소가 결측치인지 여부를 나타내는 불리언(True/False) 값을 반환합니다.
df.dropna()
- 결측치가 있는 행을 제거한 데이터프레임을 반환합니다.
df.fillna(value)
- 결측치를 지정한 값으로 채웁니다. value에는 채워넣을 값을 지정합니다.
df.groupby(column)
- 지정한 열을 기준으로 데이터를 그룹화합니다. 그룹별로 집계 및 분석을 수행할 수 있습니다.
df.sort_values(column)
- 지정한 열을 기준으로 데이터를 정렬합니다. 기본적으로 오름차순으로 정렬되며, 내림차순으로 정렬하려면 ascending=False를 설정합니다.
df.merge(df2)
- 두 개의 데이터프레임을 병합합니다. 공통된 열을 기준으로 데이터를 합칩니다.
df.pivot_table(values, index, columns)
- 피벗 테이블을 생성합니다. 행과 열을 지정하여 데이터를 요약하고 집계할 수 있습니다.
df.apply(function)
- 지정한 함수를 데이터프레임에 적용하여 각 열 또는 행에 대한 변환을 수행합니다.
Sklearn
다양한 머신 러닝 알고리즘과 데이터 전처리 기능을 제공합니다. sklearn은 사용하기 쉽고 일관된 API를 통해 데이터셋의 분할, 특성 스케일링, 모델 학습, 평가 등의 작업을 효율적으로 수행할 수 있습니다. 다양한 분류, 회귀, 군집화, 차원 축소 등의 알고리즘을 포함하고 있어 데이터 과학과 머신 러닝에 필수적인 도구입니다.
train_test_split
- 데이터셋을 학습용과 테스트용으로 나누는 함수입니다.
StandardScaler
- 데이터를 표준화(평균 0, 표준편차 1)하는 스케일러입니다.
LinearRegression
- 선형 회귀 모델을 학습하고 예측하는 클래스입니다.
DecisionTreeClassifier
- 결정 트리 기반의 분류 모델을 학습하고 예측하는 클래스입니다.
RandomForestRegressor
- 랜덤 포레스트 회귀 모델을 학습하고 예측하는 클래스입니다.
KMeans
- K-means 클러스터링 알고리즘을 사용하여 클러스터를 할당하는 클래스입니다.
accuracy_score
- 분류 모델의 정확도를 평가하는 함수입니다.
mean_squared_error
- 회귀 모델의 평균 제곱 오차를 계산하는 함수입니다.
GridSearchCV
- 그리드 서치를 통해 모델의 최적 매개변수를 찾는 클래스입니다.
CountVectorizer
- 문서 집합에서 단어 빈도를 기반으로 벡터화하는 클래스입니다.