반응형
파이썬 데이터 분석 - NumPy와 Pandas 기초
데이터 분석을 할 때 파이썬에서 가장 많이 사용하는 라이브러리는 NumPy와 Pandas입니다.
- NumPy(넘파이): 다차원 배열과 행렬 연산을 위한 라이브러리
- Pandas(판다스): 표 형태(테이블)의 데이터를 다루기 쉽게 만들어주는 라이브러리
이번 글에서는 NumPy와 Pandas의 기본 개념과 필수적인 기능을 다뤄보겠습니다.
1. NumPy 기초
NumPy는 숫자 데이터를 빠르고 효율적으로 처리할 수 있는 배열(Array) 구조를 제공합니다.
1.1 NumPy 배열 생성
NumPy 배열(ndarray)은 파이썬 리스트보다 메모리 효율적이고 연산 속도가 빠릅니다.
import numpy as np
# 리스트를 NumPy 배열로 변환
arr = np.array([1, 2, 3, 4, 5])
print(arr)
# 출력: [1 2 3 4 5]
# 다차원 배열 생성
matrix = np.array([[1, 2, 3], [4, 5, 6]])
print(matrix)
# 출력:
# [[1 2 3]
# [4 5 6]]
1.2 배열 연산
NumPy 배열은 리스트보다 연산 속도가 빠르며, 요소별 연산을 쉽게 수행할 수 있습니다.
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
print(arr1 + arr2) # 출력: [5 7 9]
print(arr1 * arr2) # 출력: [ 4 10 18]
print(arr1 ** 2) # 출력: [1 4 9]
1.3 NumPy 주요 함수
- np.zeros((행, 열)): 0으로 채워진 배열 생성
- np.ones((행, 열)): 1로 채워진 배열 생성
- np.random.rand(개수): 0~1 사이의 랜덤 숫자로 배열 생성
- np.linspace(시작, 끝, 개수): 시작부터 끝까지 균등 간격의 숫자 생성
print(np.zeros((2, 3)))
# 출력:
# [[0. 0. 0.]
# [0. 0. 0.]]
print(np.linspace(1, 10, 5))
# 출력: [ 1. 3.25 5.5 7.75 10. ]
2. Pandas 기초
Pandas는 표 형태(테이블)의 데이터를 다루기 쉽게 만들어주는 라이브러리입니다.
엑셀과 비슷한 구조를 가지고 있으며, 데이터 분석에 최적화되어 있습니다.
2.1 Pandas 데이터 구조
Pandas는 두 가지 주요 데이터 구조를 사용합니다.
- Series: 1차원 데이터 (리스트, 배열과 유사)
- DataFrame: 2차원 데이터 (엑셀 표와 유사)
Series 생성
import pandas as pd
data = pd.Series([10, 20, 30, 40], index=['A', 'B', 'C', 'D'])
print(data)
# 출력:
# A 10
# B 20
# C 30
# D 40
# dtype: int64
print(data['B']) # 출력: 20
DataFrame 생성
df = pd.DataFrame({
'이름': ['철수', '영희', '민수'],
'나이': [25, 30, 28],
'점수': [90, 85, 88]
})
print(df)
# 출력:
# 이름 나이 점수
# 0 철수 25 90
# 1 영희 30 85
# 2 민수 28 88
2.2 데이터 불러오기 및 저장
CSV, Excel, SQL 같은 다양한 형식의 데이터를 쉽게 불러오고 저장할 수 있습니다.
# CSV 파일 불러오기
df = pd.read_csv('data.csv')
# 엑셀 파일 불러오기
df = pd.read_excel('data.xlsx')
# 데이터 저장
df.to_csv('output.csv', index=False) # CSV 저장
df.to_excel('output.xlsx', index=False) # 엑셀 저장
2.3 데이터 탐색
데이터를 빠르게 확인하는 함수들을 알아봅니다.
print(df.head()) # 처음 5개 행 출력
print(df.tail()) # 마지막 5개 행 출력
print(df.info()) # 데이터 타입, 결측치 확인
print(df.describe()) # 수치형 데이터 요약 통계
2.4 데이터 선택 및 필터링
특정 컬럼 선택
print(df['이름']) # '이름' 컬럼 선택
특정 행 선택
print(df.loc[1]) # 인덱스 1번 행 선택
조건 필터링
print(df[df['나이'] > 26]) # 나이가 26 이상인 데이터
2.5 데이터 정렬 및 그룹화
정렬하기
df_sorted = df.sort_values(by='점수', ascending=False) # 점수 기준 내림차순 정렬
그룹화하기
grouped = df.groupby('나이')['점수'].mean() # 나이별 점수 평균
print(grouped)
3. NumPy vs Pandas 차이점
데이터 구조 | 배열(ndarray) | 표(DataFrame) |
연산 속도 | 빠름 | 상대적으로 느림 |
데이터 형태 | 숫자 위주 | 숫자 + 문자열 |
주요 기능 | 배열 연산, 벡터화 | 데이터 분석, 테이블 조작 |
결론
- NumPy는 빠른 수치 연산과 다차원 배열을 다루는 데 최적화
- Pandas는 데이터 분석에 최적화된 라이브러리로 표 형식 데이터를 다룸
다음 글에서는 Pandas를 활용한 데이터 전처리(결측치 처리, 데이터 변형, 그룹화 등)에 대해 다뤄보겠습니다!
반응형
'프로그래밍 공부 > pyhton' 카테고리의 다른 글
파이썬 데이터 분석 - Pandas를 활용한 데이터 시각화 (0) | 2025.03.14 |
---|---|
파이썬 데이터 분석 - Pandas를 활용한 데이터 전처리 (0) | 2025.03.14 |
파이썬 고급 - 리스트(List), 딕셔너리(Dictionary), 세트(Set) 활용법 (4) | 2025.01.03 |
파이썬 기초 - 제너레이터(Generators) (1) | 2024.09.13 |
파이썬 기초 - 데코레이터(Decorator) (0) | 2024.09.13 |