측정 데이터의 Shape와 Missing Value 처리

실행 준비

실습 코드 앞의 코드 셀에서 import numpy as np, import matplotlib.pyplot as plt를 실행하세요. 배열 연산에는 np, 그림에는 plt를 사용합니다.

학습 목표

측정 표를 분석 가능한 배열로 바꾸고 누락·단위·그림을 함께 확인합니다. Python 문법은 이 작업에 필요한 부분만 복습합니다.

한 표본과 여러 표본

시작 조건

학생 3명의 (시간,점수)는 (2,55),(4,70),(6,85)입니다. 시간은 h입니다.

진행 방법

  1. 각 표본을 Dictionary로 만들고 List로 묶으세요.
  2. 시간만·점수만 선택한 List와 평균을 구하세요.

남길 결과

records=[{'hours':2,'score':55},{'hours':4,'score':70},{'hours':6,'score':85}]
print([r['hours'] for r in records])

결과 기록·자가 점검

표본:

시간 [h]:

점수:

자료형:

확인할 점

결측 표본

시작 조건

네 번째 표본은 hours=3, score=None입니다. 평균에서 결측 표본을 구분합니다.

진행 방법

  1. records에 {"hours":3,"score":None}을 추가해 records2를 만드세요. hours와 score를 필드별로 꺼내세요.
  2. 각 필드에서 None인 값만 제외하고 평균을 계산하세요. 필드명·원래 값 수·평균에 쓴 값 수·평균을 두 행으로 기록하세요.
  3. 추가 전후의 평균을 대조하고, 결측인 점수가 시간 값까지 제외해야 하는 이유가 되는지 설명하세요.

남길 결과

records2=records+[{'hours':3,'score':None}]

결과 기록·자가 점검

필드명:

전체 값 수:

평균에 사용한 값 수:

추가 전후 평균:

확인할 점

정리한 자료로 판단하기

시작 조건

새 장치의 기록 [(0,18),(1,19),(2,None)]을 같은 필드 이름으로 정리합니다.

진행 방법

  1. 새 기록의 각 쌍에서 첫 값을 앞 활동의 입력 필드, 둘째 값을 측정 필드에 대응시켜 Dictionary List로 만드세요. None은 그대로 보존하세요.
  2. 유효한 측정값의 개수·평균과 입력–측정값 산점도를 구하세요. 결측 처리 규칙 하나를 바꿔 같은 항목을 다시 구하세요. 예를 들어 결측 제외와 0 대체를 비교할 수 있습니다.
  3. 선택한 두 처리 규칙·유효값 수·평균을 기록하고, 원본에서 결측의 뜻을 알아야 하는 이유를 이 결과와 연결해 적으세요.

남길 결과

새 장치 자료의 첫 값은 입력 좌표, 둘째 값은 측정값이며 물리 단위는 주어지지 않았습니다. hours·score는 자료구조 재사용을 위한 키로 두고, 그래프 축은 ‘입력 좌표’·‘측정값’으로 표시하세요. 원래 관측된 값의 수와 결측 처리 후 평균 계산에 사용한 값의 수를 구분해 기록합니다.

# 조건을 바꾸고 결과를 확인하세요.

결과 기록·자가 점검

기록의 두 필드:

결측 처리 규칙:

원래 관측 수·계산에 사용한 값 수·평균:

산점도와 해석:

확인할 점