학생별 합계/평균 계산하기: axis = 1

30 P
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))
실행 결과 예시
학생별 총점: [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를 생략하면 배열 전체에 대해 계산합니다.