[파이썬][Numpy] Numpy를 활용한 데이터 전처리

Numpy를 사용하여 데이터 전처리를 수행하는 예제를 제공하겠습니다. 데이터 전처리는 데이터를 분석하거나 머신러닝 모델에 적용하기 전에 데이터를 정리하고 변환하는 과정을 의미합니다.

데이터 전처리 예제:

이 예제에서는 데이터 스케일 조정, 결측값 처리 및 원-핫 인코딩을 수행하는 방법을 보여줍니다.

import numpy as np

# 가상의 데이터 생성 (행: 샘플, 열: 특성)
data = np.array([[1.2, 2.4, 3.1],
                 [2.7, 1.8, 4.2],
                 [3.5, 2.0, np.nan],
                 [np.nan, 4.1, 2.8]])

# 데이터 스케일 조정 (표준화)
mean = np.nanmean(data, axis=0)
std = np.nanstd(data, axis=0)
data_scaled = (data - mean) / std

print("스케일 조정된 데이터:")
print(data_scaled)

# 결측값 처리 (평균값으로 대체)
data_scaled[np.isnan(data)] = 0  # 누락된 값은 0으로 대체

print("\n누락값 처리 후 데이터:")
print(data_scaled)

# 원-핫 인코딩 (가상의 범주형 데이터)
categorical_data = np.array(['cat', 'dog', 'bird', 'dog', 'cat'])

# 원-핫 인코딩 수행
unique_labels = np.unique(categorical_data)
one_hot_encoded = np.zeros((len(categorical_data), len(unique_labels)))

for i, label in enumerate(categorical_data):
    one_hot_encoded[i, np.where(unique_labels == label)] = 1

print("\n원-핫 인코딩 결과:")
print(one_hot_encoded)

위의 코드에서는 다음과 같은 데이터 전처리 단계를 수행합니다:

  1. 데이터 스케일 조정 (표준화): 각 특성의 평균과 표준 편차를 계산하고, 이를 사용하여 데이터를 표준화합니다.

  2. 결측값 처리: 데이터에서 결측값 (NaN)을 평균값으로 대체합니다.

  3. 원-핫 인코딩: 범주형 데이터를 원-핫 인코딩하여 숫자로 변환합니다.

Numpy를 사용하면 데이터 전처리 작업을 효과적으로 수행할 수 있으며, 데이터를 머신러닝 모델에 입력하기 전에 데이터의 품질을 향상시킬 수 있습니다.