NumPy 기초: 배열과 벡터 연산
5강. NumPy 기초: 배열과 벡터 연산
1. 이번 강의에서 해결할 문제
Python 반복문으로 모든 수치를 하나씩 처리하면 계산 의도가 흐려지고 큰 데이터에서 느려집니다. 같은 타입의 수치 배열에 연산을 한 번에 적용해야 합니다.
2. 학습 목표
3. 핵심 개념
NumPy ndarray는 대체로 같은 dtype의 N차원 배열입니다. 벡터 연산은 Python 반복문을 직접 작성하지 않고 배열 전체에 계산을 적용합니다. 브로드캐스팅은 호환되는 shape 사이의 연산 규칙이며, 자동 동작이 의도한 축인지 shape를 먼저 확인해야 합니다.
4. 단계별 실습
1. 예제 파일 작성
실행 환경: 코드 편집기
실행 위치: C:\dev\game-data-lab
실행 전 확인: 기존 파일이 있으면 내용을 덮어쓰지 말고 Git diff로 이번 강의 변경 범위를 확인합니다. 실제 개인정보·API Key·토큰은 사용하지 않습니다.
대상 파일: src/numpy_basics.py
import numpy as np
scores = np.array([1280, 970, 820, 910, 1410, 1530, 760, 1190, 880], dtype=np.float64)
wins = np.array([1, 0, 1, 0, 1, 1, 0, 1, 1], dtype=np.int8)
print("shape/dtype:", scores.shape, scores.dtype)
print("평균/중앙값:", scores.mean(), np.median(scores))
print("승리 세션 평균:", scores[wins == 1].mean())
centered = scores - scores.mean()
print("중심화 평균:", np.round(centered.mean(), 10))
2. 실행과 결과 확인
실행 환경: Windows PowerShell
실행 위치: C:\dev\game-data-lab
실행 전 확인: Python 코드는 프로젝트의 .venv 인터프리터를 사용하고 입력 파일 경로가 존재하는지 확인합니다.
대상: src/numpy_basics.py과 이 강의가 만드는 출력
Set-Location C:\dev\game-data-lab
.\.venv\Scripts\python.exe .\src\numpy_basics.py
예상 결과: 배열 크기와 dtype, 전체 평균·중앙값, 승리 세션 평균과 0에 가까운 중심화 평균이 출력됩니다.
5. 분석 또는 모델이 동작하는 이유
wins == 1은 각 원소를 비교한 불리언 배열을 만들고 이를 인덱스로 사용해 승리 점수만 선택합니다. 평균을 뺀 중심화 결과의 평균은 부동소수점 오차 범위에서 0에 가깝습니다.
6. 자주 하는 실수와 해결법
7. 직접 실습
8. 이해 점검 질문 3개
9. 핵심 요약
NumPy 기초: 배열과 벡터 연산 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.