파이썬 실전 코딩 마스터: NumPy와 Pandas로 데이터 분석 전문가 되기
데이터는 세상을 움직이는 힘입니다. 데이터를 효과적으로 분석하고 활용하는 능력은 21세기 필수 역량이 되었습니다. 파이썬은 데이터 과학 분야에서 가장 널리 사용되는 언어 중 하나이며, NumPy 와 Pandas 라이브러리는 파이썬을 사용하는 데이터 분석가들에게 강력한 도구를 제공합니다.
1, 파이썬 데이터 분석의 핵심: NumPy와 Pandas
NumPy는 파이썬에서 고성능 과학 계산을 위한 기반을 제공하는 라이브러리입니다. 다차원 배열, 행렬 연산, 선형 대수, 난수 생성 등 다양한 기능을 제공하여 수치 계산의 효율성을 극대화합니다.
Pandas는 데이터 분석 및 조작 작업을 위한 강력한 도구입니다. 데이터 프레임과 시리즈라는 데이터 구조를 제공하며, 데이터 읽기/쓰기, 정렬, 필터링, 그룹화, 집계, 시각화 등 다양한 기능을 지원합니다.
2, NumPy: 배열 연산의 혁신
NumPy의 핵심은 ndarray 라는 다차원 배열 객체입니다. ndarray는 동일한 데이터 타입 값을 저장하며 효율적인 메모리 관리와 연산 속도를 제공합니다.
NumPy의 주요 기능:
- 배열 생성:
numpy.array()
,numpy.zeros()
,numpy.ones()
,numpy.arange()
등 다양한 함수를 이용하여 배열을 생성할 수 있습니다. - 배열 인덱싱 및 슬라이싱: 개별 요소 또는 범위를 선택하는 방법으로 배열 데이터에 접근할 수 있습니다.
- 배열 연산: 사칙연산, 비교 연산, 논리 연산 등 다양한 연산을 지원하며, 벡터화 연산을 통해 연산 속도를 향상시킵니다.
- 배열 형태 변경:
reshape()
,transpose()
등을 이용하여 배열의 차원과 형태를 변경할 수 있습니다. - 선형 대수 연산: 행렬 곱셈, 역행렬, 고윳값, 고유 벡터 계산 등을 지원합니다.
예제:
python import numpy as np
배열 생성
arr = np.array([1, 2, 3, 4, 5])
인덱싱
print(arr[0]) # 첫 번째 요소 출력: 1
슬라이싱
print(arr[1:4]) # 두 번째부터 네 번째 요소까지 출력: [2, 3, 4]
배열 연산
print(arr * 2) # 배열의 모든 요소에 2를 곱함
배열 형태 변경
arr2 = arr.reshape((5, 1)) # 5x1 형태로 변경 print(arr2)
3, Pandas: 데이터 분석의 필수 도구
Pandas의 핵심은 데이터 프레임 (DataFrame) 객체입니다. Dataframe은 행과 열로 구성된 테이블 형태의 데이터 구조로, 데이터 분석 및 조작에 최적화되어 있습니다.
Pandas의 주요 기능:
- 데이터 읽기/쓰기: CSV, Excel, SQL 등 다양한 데이터 소스에서 데이터를 읽고 쓰는 기능을 제공합니다.
- 데이터 정렬:
sort_values()
함수를 이용하여 특정 열을 기준으로 데이터를 정렬할 수 있습니다. - 데이터 필터링: 조건에 맞는 데이터만 선택하여 필터링할 수 있으며,
query()
함수를 통해 SQL 스타일 문법으로 필터링을 수행할 수 있습니다. - 데이터 그룹화:
groupby()
함수를 이용하여 공통된 특징을 가진 데이터를 그룹화하고 각 그룹에 대해 다양한 분석을 수행할 수 있습니다. - 데이터 집계:
agg()
함수를 이용하여 그룹 별 평균, 합계, 최대/최소 값 등 다양한 집계 연산을 수행할 수 있습니다. - 데이터 시각화:
matplotlib
및seaborn
과 같은 시각화 라이브러리와 연동하여 데이터를 시각적으로 표현할 수 있습니다.
예제:
python import pandas as pd
데이터 프레임 생성
data = {'이름': ['홍길동', '김철수', '박영희'], '나이': [25, 30, 28], '직업': ['개발자', '디자이너', '마케터']} df = pd.DataFrame(data)
데이터 출력
print(df)
나이 열을 기준으로 정렬
sorteddf = df.sortvalues(by='나이') print(sorted_df)
나이가 28세 이상인 데이터 필터링
filtereddf = df[df['나이'] >= 28] print(filtereddf)
직업 별 평균 나이 계산
groupeddf = df.groupby('직업')['나이'].mean() print(groupeddf)
4, NumPy와 Pandas를 활용한 실전 데이터 분석
NumPy와 Pandas의 강력한 기능을 활용하여 실제 데이터 분석 문제를 해결하는 방법을 살펴보겠습니다.
데이터 전처리:
- 결측값 처리:
fillna()
함수를 이용하여 결측값을 채워줍니다. - 이상값 처리:
zscore()
함수를 이용하여 이상값을 찾아 처리합니다. - 데이터 변환:
apply()
함수를 이용하여 데이터를 원하는 형태로 변환합니다.
통계 분석:
- 기술 통계:
describe()
함수를 이용하여 데이터의 기본적인 통계 정보를 얻습니다. - 상관관계 분석:
corr()
함수를 이용하여 변수 간의 상관관계를 분석합니다. - 회귀 분석:
statsmodels
라이브러리를 이용하여 데이터의 관계를 모델링합니다.
데이터 시각화:
- 히스토그램, 산점도, 박스 플롯 등을 이용하여 데이터의 분포 및 관계를 시각적으로 나타냅니다.
matplotlib
,seaborn
등의 시각화 라이브러리를 활용하여 다양한 그래프를 생성합니다.
예제:
python import pandas as pd import matplotlib.pyplot as plt
CSV 파일에서 데이터 읽기
df = pd.read_csv('data.csv')
데이터 전처리
df.fillna(method='ffill', inplace=True) # 결측값을 앞 데이터로 채우기 df['나이'] = df['나이'].astype('int') # 나이 열을 정수형으로 변환
기술 통계
print(df.describe())
산점도 그리기
plt.scatter(df['나이'], df['소득']) plt.xlabel('나이') plt.ylabel('소득') plt.show()
5, NumPy와 Pandas를 활용한 머신러닝
NumPy 와 Pandas 는 머신러닝 모델을 구축하기 위한 데이터 전처리 및 분석 과정에서 필수적인 역할을 합니다.
예제:
python import pandas as pd from sklearn.modelselection import traintestsplit from sklearn.linearmodel import LinearRegression
데이터 읽기
df = pd.readcsv('housedata.csv')
독립 변수와 종속 변수 분리
X = df[['면적', '방수', '욕실수']] y = df['가격']
데이터 분할
Xtrain, Xtest, ytrain, ytest = traintestsplit(X, y, test_size=0.2)
선형 회귀 모델 생성 및 학습
model = LinearRegression() model.fit(Xtrain, ytrain)
모델 평가
score = model.score(Xtest, ytest) print(f'모델 정확도: {score:.2f}')
6, NumPy와 Pandas를 활용한 데이터 분석 전문가 되기
NumPy와 Pandas는 파이썬
'파이썬' 카테고리의 다른 글
파이썬 모듈과 패키지: 개발 효율성과 생산성 향상하기 (3) | 2024.11.06 |
---|---|
파이썬으로 JSON 데이터를 파싱하는 함수 (1) | 2024.11.06 |
파이썬 모듈과 패키지: 다양한 유형과 사용 사례 (0) | 2024.11.06 |
파이썬 머신러닝으로 텍스트 요약하기 (1) | 2024.11.06 |
파이썬으로 자율주행차 개발 (1) | 2024.11.06 |