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: 데이터 시각화를 통해 데이터의 패턴을 파악
이러한 라이브러리를 활용하면 데이터를 쉽게 처리하고 시각화할 수 있어 분석 과정이 훨씬 효율적이 된다.
'데이터 분석 > 데이터 사이언스' 카테고리의 다른 글
데이터 사이언스 - 3. 데이터 핸들링과 전처리 (3.2 결측치 처리 (Missing Values)) (0) | 2025.03.20 |
---|---|
데이터 사이언스 - 3. 데이터 핸들링과 전처리 (3.1 데이터 불러오기 및 저장) (0) | 2025.03.20 |
데이터 사이언스 - 2. Python을 활용한 데이터 분석 기초 (2.1 Python 기초 문법 복습) (0) | 2025.03.20 |
데이터 사이언스 - 1. 데이터 사이언스 개요 (1.2 데이터 사이언티스트의 역할과 필요한 기술) (0) | 2025.03.20 |
데이터 사이언스 - 1. 데이터 사이언스 개요 (1.1 데이터 사이언스란?) (0) | 2025.03.20 |