PROGRESS
5 / 13
단원
넘파이(NumPy) 기초 13
데이터프레임 생성과 편집 9
데이터 탐색과 필터링 12
데이터 집계와 통계 13
데이터 시각화(matplotlib) 10
파일 입출력(CSV, Excel, JSON) 10
전체 목록
QUESTION 05 #304
4명의 학생에 대한 과목별 점수 데이터가 있습니다. 각 과목별이 아닌 학생별 총점과 평균을 구하고자 합니다. 빈칸을 채워보세요.
main.py
import numpy as np
score = np.array([
[80, 90, 85], # 학생 A
[70, 60, 100], # 학생 B
[76, 67, 93], # 학생 C
[90, 78, 68] # 학생 D
])
# 1. 학생별(행 단위) 총점 계산
student_sum = np.(score, axis=)
# 2. 학생별(행 단위) 평균 계산
student_avg = np.(score, axis=)
# 소수점 2자리까지 반올림하여 출력
print("학생별 총점:", student_sum)
print("학생별 평균:", np.round(student_avg, 2))
HINT
힌트: 행(Row)을 따라 왼쪽에서 오른쪽으로 계산할 때는 axis 값을 1로 설정합니다. 합계는 sum(), 평균은 mean() 함수를 사용합니다.
실행 결과 예시
학생별 총점: [255 230 236 236] 학생별 평균: [85. 76.67 78.67 78.67]
INTERACTIVE SHELL
Shift + Enter 로 즉시 실행
axis=1 : 행(Row) 단위 계산
axis=1은 왼쪽에서 오른쪽으로 같은 행끼리 계산합니다.
배열 구조와 axis=1 동작
국어 영어 수학 → axis=1 방향
학생 A → [ 80 + 90 + 85 ] = 255
학생 B → [ 70 + 60 + 100 ] = 230
학생 C → [ 76 + 67 + 93 ] = 236
학생 D → [ 90 + 78 + 68 ] = 236
axis=0 vs axis=1 비교
| axis | 방향 | 계산 대상 | 결과 |
|---|---|---|---|
axis=0 |
↓ 위→아래 | 과목별 (열 단위) | [316, 295, 346] |
axis=1 |
→ 왼→오른 | 학생별 (행 단위) | [255, 230, 236, 236] |
np.round() 함수
np.round(student_avg, 2)
- 첫 번째 인자: 반올림할 배열
- 두 번째 인자: 소수점 자릿수
76.6666...→76.67
실전 활용
# 학생별 평균
student_avg = np.mean(score, axis=1)
# 결과: [85.0, 76.67, 78.67, 78.67]
# 전체 평균
total_avg = np.mean(score) # axis 생략 → 전체 평균
# 결과: 79.75
💡 axis를 생략하면 배열 전체에 대해 계산합니다.