NumPy 완벽 마스터
NumPy의 핵심 개념과 실전 활용법
학습 항목
이미지 로딩 중...
Data Science 기초부터 심화까지
데이터 과학의 핵심 개념과 실전 기법을 배웁니다. Pandas, NumPy, Matplotlib을 활용한 데이터 분석과 시각화, 머신러닝 기초까지 다룹니다.
들어가며
이 글에서는 Data Science 기초부터 심화까지에 대해 상세히 알아보겠습니다. 총 10가지 주요 개념을 다루며, 각각의 개념에 대한 설명과 실제 코드 예제를 함께 제공합니다.
목차
- Pandas_DataFrame_기초
- NumPy_배열_연산
- 데이터_필터링과_정렬
- 데이터_그룹화와_집계
- Matplotlib_기본_시각화
- 결측치_처리
- CSV_파일_읽기와_저장
- 데이터_병합하기
- 데이터_피벗_테이블
- 선형_회귀_기초
1. Pandas_DataFrame_기초
개요
Pandas의 DataFrame은 데이터를 테이블 형태로 다루는 핵심 자료구조입니다. 행과 열로 구성되어 있으며 다양한 데이터 분석 작업을 수행할 수 있습니다.
코드 예제
import pandas as pd
data = {'이름': ['김철수', '이영희', '박민수'],
'나이': [25, 30, 35],
'직업': ['개발자', '디자이너', '기획자']}
df = pd.DataFrame(data)
print(df)
print(f"\n평균 나이: {df['나이'].mean()}")
설명
DataFrame을 생성하고 기본 정보를 출력합니다. mean() 함수로 나이의 평균을 쉽게 계산할 수 있습니다.
2. NumPy_배열_연산
개요
NumPy는 고성능 수치 계산을 위한 라이브러리입니다. 배열 단위 연산으로 반복문 없이 빠르게 계산할 수 있습니다.
코드 예제
import numpy as np
scores = np.array([85, 90, 78, 92, 88])
normalized = (scores - scores.mean()) / scores.std()
print(f"원본 점수: {scores}")
print(f"표준화 점수: {normalized}")
print(f"90점 이상: {scores[scores >= 90]}")
설명
NumPy 배열로 표준화(정규화) 계산과 조건 필터링을 한 줄로 처리합니다. 벡터화 연산으로 성능이 뛰어납니다.
3. 데이터_필터링과_정렬
개요
Pandas로 조건에 맞는 데이터를 필터링하고 정렬할 수 있습니다. 복잡한 조건도 쉽게 표현 가능합니다.
코드 예제
import pandas as pd
df = pd.DataFrame({
'제품': ['A', 'B', 'C', 'D'],
'가격': [10000, 25000, 15000, 30000],
'재고': [50, 30, 0, 20]
})
expensive = df[(df['가격'] >= 20000) & (df['재고'] > 0)]
print(expensive.sort_values('가격', ascending=False))
설명
2만원 이상이면서 재고가 있는 제품만 필터링하고, 가격 내림차순으로 정렬합니다.
4. 데이터_그룹화와_집계
개요
groupby()로 데이터를 그룹화하고 각 그룹별 통계를 계산합니다. SQL의 GROUP BY와 유사한 기능입니다.
코드 예제
import pandas as pd
sales = pd.DataFrame({
'지역': ['서울', '서울', '부산', '부산', '서울'],
'매출': [100, 150, 80, 90, 120]
})
regional_stats = sales.groupby('지역')['매출'].agg(['sum', 'mean', 'count'])
print(regional_stats)
설명
지역별로 데이터를 그룹화하여 총합, 평균, 개수를 한 번에 계산합니다.
5. Matplotlib_기본_시각화
개요
Matplotlib으로 데이터를 시각화할 수 있습니다. 선 그래프, 막대 그래프 등 다양한 차트를 그릴 수 있습니다.
코드 예제
import matplotlib.pyplot as plt
months = ['1월', '2월', '3월', '4월']
sales = [120, 150, 180, 160]
plt.figure(figsize=(8, 5))
plt.plot(months, sales, marker='o', linewidth=2)
plt.title('월별 매출 추이')
plt.ylabel('매출(만원)')
plt.grid(True)
plt.show()
설명
월별 매출 데이터를 선 그래프로 시각화합니다. marker로 데이터 포인트를 표시하고 그리드를 추가했습니다.
6. 결측치_처리
개요
실제 데이터에는 빠진 값(NaN)이 자주 있습니다. 결측치를 찾고 적절히 처리하는 것이 중요합니다.
코드 예제
import pandas as pd
import numpy as np
df = pd.DataFrame({
'이름': ['A', 'B', 'C', 'D'],
'점수': [85, np.nan, 90, 78]
})
print(f"결측치 개수: {df['점수'].isna().sum()}")
df['점수'].fillna(df['점수'].mean(), inplace=True)
print(df)
설명
결측치를 확인하고 평균값으로 채웁니다. isna()로 결측치를 찾고 fillna()로 대체합니다.
7. CSV_파일_읽기와_저장
개요
CSV 파일은 가장 흔한 데이터 포맷입니다. Pandas로 쉽게 읽고 쓸 수 있습니다.
코드 예제
import pandas as pd
# CSV 읽기
df = pd.read_csv('data.csv', encoding='utf-8')
print(df.head()) # 처음 5행 출력
# 데이터 처리 후 저장
df_filtered = df[df['price'] > 1000]
df_filtered.to_csv('filtered_data.csv', index=False)
설명
read_csv()로 파일을 읽고, 조건으로 필터링한 후 새 파일로 저장합니다. index=False로 인덱스를 제외합니다.
8. 데이터_병합하기
개요
여러 데이터셋을 합치는 작업은 데이터 분석에서 매우 중요합니다. SQL의 JOIN과 유사한 기능입니다.
코드 예제
import pandas as pd
users = pd.DataFrame({'id': [1, 2, 3], '이름': ['김', '이', '박']})
orders = pd.DataFrame({'id': [1, 2, 4], '금액': [10000, 20000, 15000]})
merged = pd.merge(users, orders, on='id', how='inner')
print(merged)
설명
두 DataFrame을 id 컬럼 기준으로 내부 조인합니다. how 파라미터로 조인 방식(inner, outer, left, right)을 지정합니다.
9. 데이터_피벗_테이블
개요
피벗 테이블로 데이터를 재구조화하고 다차원 분석을 수행할 수 있습니다. Excel의 피벗 테이블과 같은 기능입니다.
코드 예제
import pandas as pd
sales = pd.DataFrame({
'날짜': ['2024-01', '2024-01', '2024-02', '2024-02'],
'제품': ['A', 'B', 'A', 'B'],
'매출': [100, 150, 120, 180]
})
pivot = sales.pivot_table(values='매출', index='날짜', columns='제품')
print(pivot)
설명
날짜를 행, 제품을 열로 하는 피벗 테이블을 생성합니다. 데이터를 2차원 표로 재구조화합니다.
10. 선형_회귀_기초
개요
머신러닝의 가장 기본적인 알고리즘인 선형 회귀로 데이터의 패턴을 학습하고 예측합니다.
코드 예제
from sklearn.linear_model import LinearRegression
import numpy as np
X = np.array([[1], [2], [3], [4], [5]]) # 공부 시간
y = np.array([2, 4, 5, 4, 5]) # 시험 점수
model = LinearRegression()
model.fit(X, y)
print(f"6시간 공부 시 예상 점수: {model.predict([[6]])[0]:.1f}")
설명
공부 시간과 점수의 관계를 학습하여 새로운 값을 예측합니다. fit()으로 학습하고 predict()로 예측합니다.
마치며
이번 글에서는 Data Science 기초부터 심화까지에 대해 알아보았습니다. 총 10가지 개념을 다루었으며, 각각의 사용법과 예제를 살펴보았습니다.
관련 태그
#Python #Pandas #NumPy #DataAnalysis #MachineLearning