본문 바로가기
Python 문법/Python 기본 문법(3.10 기준)

[python3.10 기본] 23. 데이터 과학과 머신러닝

by cogito21_python 2024. 7. 2.
반응형

23.1 NumPy 기초

NumPy는 고성능 수치 계산을 위한 파이썬 라이브러리입니다. 배열 객체와 다양한 수학 함수 및 연산을 제공합니다.

 

NumPy 설치

pip install numpy

NumPy 배열 생성

import numpy as np

# 리스트로부터 배열 생성
arr = np.array([1, 2, 3, 4, 5])
print(arr)  # [1 2 3 4 5]

# 2차원 배열 생성
matrix = np.array([[1, 2, 3], [4, 5, 6]])
print(matrix)

기본 연산

# 배열 연산
arr = np.array([1, 2, 3, 4, 5])
print(arr + 5)  # [ 6  7  8  9 10]
print(arr * 2)  # [ 2  4  6  8 10]

# 행렬 연산
matrix = np.array([[1, 2, 3], [4, 5, 6]])
print(matrix.T)  # 전치 행렬

23.2 pandas를 사용한 데이터 처리

pandas는 데이터 조작과 분석을 위한 강력한 도구를 제공합니다. 특히, 데이터프레임 객체는 구조화된 데이터를 다루는 데 매우 유용합니다.

 

pandas 설치

pip install pandas

데이터프레임 생성

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [24, 27, 22],
    'City': ['New York', 'San Francisco', 'Los Angeles']
}
df = pd.DataFrame(data)
print(df)

데이터 불러오기 및 저장

# CSV 파일 읽기
df = pd.read_csv('data.csv')

# CSV 파일로 저장
df.to_csv('output.csv', index=False)

데이터프레임 조작

# 열 선택
print(df['Name'])

# 조건부 선택
print(df[df['Age'] > 25])

# 열 추가
df['Salary'] = [50000, 60000, 70000]

# 그룹화 및 집계
print(df.groupby('City')['Age'].mean())

23.3 matplotlib을 사용한 데이터 시각화

matplotlib은 데이터 시각화를 위한 라이브러리로, 다양한 그래프와 차트를 생성할 수 있습니다.

 

matplotlib 설치

pip install matplotlib

기본 플롯

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [10, 20, 25, 30, 40]

plt.plot(x, y)
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Line Plot')
plt.show()

다양한 그래프

# 막대 그래프
plt.bar(x, y)
plt.title('Bar Plot')
plt.show()

# 히스토그램
data = np.random.randn(1000)
plt.hist(data, bins=30)
plt.title('Histogram')
plt.show()

# 산점도
plt.scatter(x, y)
plt.title('Scatter Plot')
plt.show()

23.4 scikit-learn을 사용한 머신러닝 기초

scikit-learn은 파이썬에서 머신러닝 모델을 구축하고 평가하는 데 널리 사용되는 라이브러리입니다.

 

scikit-learn 설치

pip install scikit-learn

기본 사용법

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

# 데이터 준비
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([1, 4, 9, 16, 25])

# 훈련 세트와 테스트 세트로 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 모델 훈련
model = LinearRegression()
model.fit(X_train, y_train)

# 예측
y_pred = model.predict(X_test)

# 평가
mse = mean_squared_error(y_test, y_pred)
print(f'Mean Squared Error: {mse}')

 

반응형