PROGRESS
6 / 13
단원
넘파이(NumPy) 기초 13
데이터프레임 생성과 편집 9
데이터 탐색과 필터링 12
데이터 집계와 통계 13
데이터 시각화(matplotlib) 10
파일 입출력(CSV, Excel, JSON) 10
전체 목록
QUESTION 06 #322
2차원 리스트를 대상으로 넘파이 함수와 데이터프레임을 사용하여 전체, 열별, 행별 평균을 구하는 문제입니다. 빈칸을 채워보세요.
main.py
import numpy as np
import pandas as pd
data = [[10, 20], [30, 40], [50, 60]]
# --- 넘파이(NumPy) 방식 ---
nm_total = np.mean()
nm_col = np.mean(, axis=0)
nm_row = np.mean(, axis=1)
# --- 데이터프레임(DataFrame) 방식 ---
df = pd.DataFrame(data, columns=["A", "B"])
df_col = df.mean(axis=) # 열별 평균
df_row = df.mean(axis=) # 행별 평균
print("--- 넘파이 결과 ---")
print(f"전체 평균: {nm_total}")
print(f"열별 평균: {nm_col}")
print(f"행별 평균: {nm_row}")
print("\n--- 데이터프레임 결과 ---")
print(f"열별 평균:\n{df_col}")
print(f"\n행별 평균:\n{df_row}")
HINT
힌트: 넘파이 함수는 리스트 data를 인자로 받으며, axis=0은 열(세로), axis=1은 행(가로) 방향 연산을 의미합니다.
실행 결과 예시
--- 넘파이 결과 --- 전체 평균: 35.0 열별 평균: [30. 40.] 행별 평균: [15. 35. 55.] --- 데이터프레임 결과 --- 열별 평균: A 30.0 B 40.0 dtype: float64 행별 평균: 0 15.0 1 35.0 2 55.0 dtype: float64
INTERACTIVE SHELL
Shift + Enter 로 즉시 실행
넘파이 vs 판다스 평균 비교
같은 데이터에 대해 넘파이와 판다스 두 가지 방법으로 평균을 구할 수 있습니다.
데이터 구조
data = [[10, 20], [30, 40], [50, 60]]
A열 B열
행0: 10 20
행1: 30 40
행2: 50 60
넘파이 방식
np.mean(data) # 전체 평균: 35.0
np.mean(data, axis=0) # 열별 평균: [30.0, 40.0]
np.mean(data, axis=1) # 행별 평균: [15.0, 35.0, 55.0]
- 전체 평균: (10+20+30+40+50+60) / 6 = 35.0
- 열별(axis=0): A열 = (10+30+50)/3 = 30, B열 = (20+40+60)/3 = 40
- 행별(axis=1): 행0 = (10+20)/2 = 15, 행1 = (30+40)/2 = 35, 행2 = (50+60)/2 = 55
판다스 방식
df = pd.DataFrame(data, columns=["A", "B"])
df.mean(axis=0) # 열별 평균
df.mean(axis=1) # 행별 평균
넘파이 vs 판다스 비교
| 비교 | 넘파이 | 판다스 |
|---|---|---|
| 함수 형태 | np.mean(data) |
df.mean() |
| 전체 평균 | np.mean(data) |
df.values.mean() |
| 열별 평균 | np.mean(data, axis=0) |
df.mean(axis=0) |
| 행별 평균 | np.mean(data, axis=1) |
df.mean(axis=1) |
| 결과 형태 | ndarray | Series (인덱스 포함) |
| axis 규칙 | 동일 | 동일 |
결과 출력 형태 차이
# 넘파이: 단순 배열
np.mean(data, axis=0) → [30. 40.]
# 판다스: 라벨(열 이름) 포함
df.mean(axis=0)
→ A 30.0
B 40.0
dtype: float64
💡 핵심: 넘파이와 판다스의 axis 규칙은 동일합니다. axis=0은 열별, axis=1은 행별입니다.