PROGRESS
4 / 13
단원
넘파이(NumPy) 기초 13
데이터프레임 생성과 편집 9
데이터 탐색과 필터링 12
데이터 집계와 통계 13
데이터 시각화(matplotlib) 10
파일 입출력(CSV, Excel, JSON) 10
전체 목록
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)
HINT
힌트: 합계를 구할 때는 sum(), 평균을 구할 때는 mean() 함수를 사용합니다. axis=0은 행을 따라 내려가며 열 단위로 계산하라는 의미입니다.
실행 결과 예시
과목별 총점: [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)이 사라지는 방향이라고 생각하면 쉽습니다.