데이터 사이언스 - 2. Python을 활용한 데이터 분석 기초 (2.2 데이터 분석 필수 라이브러리)

2025. 3. 20. 11:50데이터 분석/데이터 사이언스

2.2 데이터 분석 필수 라이브러리

데이터 분석을 수행할 때 파이썬의 강력한 라이브러리를 활용하면 데이터를 효율적으로 다룰 수 있다.
특히, NumPy, Pandas, Matplotlib, Seaborn은 데이터 처리 및 시각화를 위한 필수 도구이다.


2.2.1 NumPy: 다차원 배열 연산, 선형대수

NumPy란?

NumPy(Numerical Python)는 수치 연산을 위한 라이브러리로, 다차원 배열(NumPy 배열)을 빠르게 처리할 수 있다.
또한, 선형대수, 난수 생성, 행렬 연산 등의 기능을 제공하며, 머신러닝과 데이터 분석에서 기본적으로 사용된다.

NumPy 배열 생성

NumPy 배열은 ndarray(다차원 배열) 형태로 데이터를 저장하며, 리스트보다 훨씬 빠른 연산을 수행할 수 있다.

import numpy as np

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

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

print("1차원 배열:", arr1)
print("2차원 배열:\n", arr2)

배열의 속성 확인

print("배열 크기:", arr2.shape)  # (행, 열)
print("배열 차원:", arr2.ndim)  # 차원 수
print("배열 데이터 타입:", arr2.dtype)  # 데이터 타입

NumPy 주요 기능

배열 연산 (벡터 연산)

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

# 요소별 연산
print("덧셈:", arr1 + arr2)  
print("곱셈:", arr1 * arr2)  
print("제곱:", arr1 ** 2)  

행렬 연산 (선형대수)

A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])

# 행렬 곱
C = np.dot(A, B)
print("행렬 곱:\n", C)

# 전치 행렬
print("전치 행렬:\n", A.T)

난수 생성

random_array = np.random.rand(3, 3)  # 3x3 랜덤 배열 생성
print(random_array)

NumPy는 데이터 분석과 머신러닝에서 배열 연산을 최적화하는 데 필수적인 라이브러리이다.


2.2.2 Pandas: 데이터프레임 생성 및 조작

Pandas란?

Pandas는 테이블 형식(표) 데이터를 다룰 수 있는 라이브러리로, 엑셀(Excel)과 유사한 데이터 처리 기능을 제공한다.
기본적으로 Series(1차원 데이터), DataFrame(2차원 데이터) 구조를 사용한다.

DataFrame 생성

import pandas as pd

# 데이터 생성
data = {"Name": ["Alice", "Bob", "Charlie"], "Age": [25, 30, 35], "Score": [90, 85, 88]}

# 데이터프레임 생성
df = pd.DataFrame(data)

print(df)

DataFrame 기본 정보 조회

print(df.head())  # 상위 5개 데이터 출력
print(df.info())  # 데이터 타입, 결측치 확인
print(df.describe())  # 기본 통계 정보

DataFrame 데이터 조작

열 추가 및 삭제

df["City"] = ["Seoul", "Busan", "Incheon"]  # 새로운 열 추가
df = df.drop(columns=["Score"])  # 특정 열 삭제
print(df)

필터링 및 조건 검색

# 나이가 30 이상인 데이터 선택
filtered_df = df[df["Age"] >= 30]
print(filtered_df)

데이터 정렬

# Age 기준으로 내림차순 정렬
sorted_df = df.sort_values(by="Age", ascending=False)
print(sorted_df)

Pandas는 대량의 데이터를 빠르게 분석하고 변환하는 데 필수적인 도구이며,
데이터 분석 및 머신러닝 프로젝트에서 가장 많이 사용되는 라이브러리 중 하나이다.


2.2.3 Matplotlib & Seaborn: 데이터 시각화

데이터를 이해하려면 시각화(Visualization)가 필수적이며,
Matplotlib과 Seaborn은 파이썬에서 가장 많이 사용되는 데이터 시각화 라이브러리이다.

Matplotlib: 기본 그래프 시각화

Matplotlib은 라인 차트, 바 차트, 히스토그램 등 다양한 그래프를 그릴 수 있는 라이브러리이다.

라인 차트 (Line Plot)

import matplotlib.pyplot as plt

# 데이터 생성
x = [1, 2, 3, 4, 5]
y = [10, 15, 20, 25, 30]

plt.plot(x, y, marker='o', linestyle='--', color='r')
plt.xlabel("X 축")
plt.ylabel("Y 축")
plt.title("라인 차트 예제")
plt.show()

바 차트 (Bar Chart)

categories = ["A", "B", "C", "D"]
values = [10, 20, 15, 25]

plt.bar(categories, values, color='skyblue')
plt.xlabel("Category")
plt.ylabel("Value")
plt.title("바 차트 예제")
plt.show()

히스토그램 (Histogram)

import numpy as np

data = np.random.randn(1000)  # 정규분포를 따르는 난수 생성
plt.hist(data, bins=30, color='purple', alpha=0.7)
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.title("히스토그램 예제")
plt.show()

Seaborn: 고급 데이터 시각화

Seaborn은 Matplotlib을 기반으로 더 직관적이고 세련된 시각화 기능을 제공한다.

산점도 (Scatter Plot)

import seaborn as sns

# 샘플 데이터 생성
df = sns.load_dataset("iris")

# 산점도 시각화
sns.scatterplot(x="sepal_length", y="sepal_width", data=df, hue="species")
plt.title("산점도 예제")
plt.show()

히트맵 (Heatmap)

# 상관관계 행렬
corr = df.corr()

# 히트맵 시각화
sns.heatmap(corr, annot=True, cmap="coolwarm")
plt.title("히트맵 예제")
plt.show()

결론

데이터 분석을 효과적으로 수행하려면 NumPy, Pandas, Matplotlib, Seaborn과 같은 필수 라이브러리를 익혀야 한다.

  • NumPy: 다차원 배열 연산 및 선형대수 연산을 수행
  • Pandas: 데이터프레임을 활용한 데이터 조작 및 분석
  • Matplotlib & Seaborn: 데이터 시각화를 통해 데이터의 패턴을 파악

이러한 라이브러리를 활용하면 데이터를 쉽게 처리하고 시각화할 수 있어 분석 과정이 훨씬 효율적이 된다.