본문 바로가기
파이썬

파이썬 실전 코딩: Numpy와 Pandas 능숙하게

by 마이케이 2024. 11. 6.
반응형

파이썬 데이터 분석
파이썬 데이터 분석

파이썬 실전 코딩 마스터: NumPy와 Pandas로 데이터 분석 전문가 되기

데이터는 세상을 움직이는 힘입니다. 데이터를 효과적으로 분석하고 활용하는 능력은 21세기 필수 역량이 되었습니다. 파이썬은 데이터 과학 분야에서 가장 널리 사용되는 언어 중 하나이며, NumPyPandas 라이브러리는 파이썬을 사용하는 데이터 분석가들에게 강력한 도구를 제공합니다.


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() 함수를 이용하여 그룹 별 평균, 합계, 최대/최소 값 등 다양한 집계 연산을 수행할 수 있습니다.
  • 데이터 시각화: matplotlibseaborn과 같은 시각화 라이브러리와 연동하여 데이터를 시각적으로 표현할 수 있습니다.

예제:

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는 파이썬

반응형