3 min read
Python Data Library Cook Book

Pandas

import pandas as pd

# read
df = pd.read_csv('csv_path', names=['column1', 'column2', 'column'])

# info
df.info() # 정보
df.describe() # 자세한 정보
print(df[['column1', 'column2']]) # 일부 컬럼만 보고 싶을 때

df[['column1', 'colum2']]
    .groupby(['column1'], as_index=False)
    .mean()
    .sort_values(by='column1', ascending=True) # group by

matplotlib

heat map

import matplotlib.pyplot as plt
import seaborn as sns

plt.figure(figsize=(12, 12)) # 그래프 크기
sns.heatmap(
    df.corr(),
    linewidths=0.1,
    vmax=0.5,
    cmap=plt.cm.gist_heat,
    linecolor='white',
    annot=True)
plt.show()

두 항목의 그래프를 막대로 표시

import matplotlib.pyplot as plt
import seaborn as sns

grid = sns.FacetGrid(df, col='column')
grid.map(plt.hist, 'plasma', bins=10)
plt.show()

전체를 한번에 보는 pairplot

import matplotlib.pyplot as plt
import seaborn as sns

sns.pairplot(df, hue='column')
plt.show()

numpy

import numpy as np

# read
Data_set = np.loadtxt('csv path', delimiter=',')

# X, Y로 나누기
X = Data_set[:, 0:17]
Y = Data_set[:, 17]

sklearn

어떤 값에 문자가 있을 때

# LabelEncoder
from sklearn.preprocessing import LabelEncoder

Y_obj = dataset[:, 4]
e = LabelEncoder()
e.fit(Y_obj)
Y = e.transform(Y_obj)

# Using category codes approach
# converting type of columns to 'category'
bridge_df['Bridge_Types'] = bridge_df['Bridge_Types'].astype('category')
# Assigning numerical values and storing in another column
bridge_df['Bridge_Types_Cat'] = bridge_df['Bridge_Types'].cat.codes

category approach

학습셋 테스트셋 나누기

from sklearn.model_selection import train_test_split

X_train, X_test, Y_train, Y_test
    = train_test_split(X, Y, test_size=0.3, random_state=seed)

k겹 교차 검증

from sklearn.model_selection import StratifiedKFold

n_fold = 10
skf = StratifiedKFold(n_splits=n_fold, shuffle=True, random_state=seed)

for train, test in skf.split(X, Y):
    model = Sequential() # 딥러닝 세팅 후 시작

keras

원핫 인코딩

# 활성화 함수를 적용하기 위해 0과 1로만 구성된 데이터 구조로 변경해야함
# [1, 2, 3] 을 [[1, 0, 0], [0, 1, 0], [0, 0, 1]] 로 변환
from tensorflow.keras.utils import np_utils

Y_encoded = tf.keras.utils.to_categorical(Y)

모델 저장과 재사용

from keras.models import load_model

model.save('my_model.h5')

model = load_model('my_model.h5')

MNIST 데이터 불러오기

from keras.datasets import mnist

(X_train, Y_class_train), (X_test, Y_class_test) = mnist.load_data()

print('학습셋 이미지 수: %d 개' % (X_train.shape[0]))
print('테스트셋 이미지 수: %d 개' % (X_test.shape[0]))