과목별 합계/평균 계산하기 : np.sum(), np.mean()

30 P
QUESTION 04 #303
4명의 학생에 대한 국어, 영어, 수학 점수가 담긴 2차원 배열이 있습니다. 각 과목별 총점과 평균을 구하기 위해 빈칸에 알맞은 넘파이 함수명을 입력하세요.
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. 과목별(열 단위) 총점 계산
subject_sum = np.(score, axis=0)

# 2. 과목별(열 단위) 평균 계산
subject_avg = np.(score, axis=0)

print("과목별 총점:", subject_sum)
print("과목별 평균:", subject_avg)
실행 결과 예시
과목별 총점: [316 295 346]
과목별 평균: [79.  73.75 86.5 ]
INTERACTIVE SHELL Shift + Enter 로 즉시 실행

axis=0 : 열(Column) 단위 계산

넘파이에서 2차원 배열을 다룰 때 axis 옵션은 연산 방향을 결정하는 핵심 개념입니다.

배열 구조 이해

           국어  영어  수학
학생 A → [ 80,  90,  85 ]
학생 B → [ 70,  60, 100 ]
학생 C → [ 76,  67,  93 ]
학생 D → [ 90,  78,  68 ]

axis=0 동작 방식

axis=0위에서 아래로 같은 열끼리 계산합니다.

국어: 80 + 70 + 76 + 90 = 316
영어: 90 + 60 + 67 + 78 = 295
수학: 85 + 100 + 93 + 68 = 346

np.sum()과 np.mean()

함수 설명 결과
np.sum(score, axis=0) 과목별 합계 [316, 295, 346]
np.mean(score, axis=0) 과목별 평균 [79.0, 73.75, 86.5]

axis 방향 기억법

axis=0 : ↓ 위에서 아래로 (행을 따라 내려감 → 열 단위 결과)
axis=1 : → 왼쪽에서 오른쪽으로 (열을 따라 이동 → 행 단위 결과)

💡 기억법: axis=0은 행(row)이 사라지는 방향, axis=1은 열(column)이 사라지는 방향이라고 생각하면 쉽습니다.