3주차 · 배열을 읽고 그래프로 설명하기
실습 전에
01 데이터를 정리하는 방법
여러 사람의 여러 항목을 측정했습니다. 이 값들을 어떻게 정리하면 필요한 계산과 비교를 하기 쉬울까요?
설명
- 같은 항목을 같은 열에 놓는 등 값의 위치에 일정한 의미를 부여하면 선택·계산·비교가 쉬워집니다.
- 배열의 크기뿐 아니라 행과 열이 무엇을 뜻하는지 정해야 합니다.
02 데이터를 보는 방법
많은 측정값에서 변화나 차이를 찾으려면, 숫자만 읽는 것보다 어떤 표현이 도움이 될까요?
설명
- 표: 특정 수치 확인 / 그래프: 변화 추세와 비교
- 그래프의 해석에 필요한 축 이름·단위·범례 표시
실습
1. 배열의 모양
- 을 NumPy Array로 만들고 shape·dtype·평균·80 이상인 값과 그 개수를 출력하세요.
- 1~20을 (4,5)로 만든 뒤 첫 행, 마지막 열, 가운데 2행×3열 구간, 짝수만 선택한 결과를 각각 출력하세요.
2. 연산과 검증
- , 에서 Element-wise Product와 Matrix Multiplication을 계산하고 (0,1) 원소가 만들어지는 과정을 설명하세요.
- A의 Determinant와 Inverse를 구하고
A@Inverse가 Identity인지 np.allclose로 검증하세요. A[0,0]을 4로 바꾸어 반복하세요.
3. 결과를 그래프로
- x를 0~2π의 100개 표본으로 만들고 sin·cos를 같은 그래프에 표시하세요.
- 이어 , , 을 사용해 2×2 Figure에 sin, cos, Loss, Accuracy를 각각 표시하세요.
- 축·Legend를 쓰고 최대 Accuracy의 위치를 코드로 찾아 annotation으로 표시하세요.
제출·저장
코드, 실제 Output·그래프, 직접 작성한 해석을 포함하세요. 제출은 KLAS를 이용하며 기한은 학기 일정과 최신 공지를 확인합니다.
파일명: 이름_학번_3주차.ipynb.
실행 환경을 다시 시작하고 전체 코드를 위에서부터 실행한 뒤 저장하세요.
선택 실습
원소 수가 맞지 않는 reshape
- NumPy를 import한 뒤, 노트북 맨 아래에 Code Cell을 추가하고 다음 코드를 실행하세요.
debug_values = np.arange(12)
for debug_shape in [(5, 3), (3, 4)]:
print("requested shape:", debug_shape, "elements:", debug_values.size)
try:
print(debug_values.reshape(debug_shape))
except ValueError as error:
print(type(error).__name__, str(error))
- Text Cell에 요청한 shape별 필요한 원소 수와 실행 성공 여부를 표로 적으세요. 성공한 배열에서 0부터 11까지의 값이 어떤 순서로 배치되는지도 한 문장으로 설명하세요.