강의자료 · 인공지능응용

3주차 · 배열을 읽고 그래프로 설명하기

실습 전에

01 데이터를 정리하는 방법

여러 사람의 여러 항목을 측정했습니다. 이 값들을 어떻게 정리하면 필요한 계산과 비교를 하기 쉬울까요?

설명
  • 같은 항목을 같은 열에 놓는 등 값의 위치에 일정한 의미를 부여하면 선택·계산·비교가 쉬워집니다.
  • 배열의 크기뿐 아니라 행과 열이 무엇을 뜻하는지 정해야 합니다.

02 데이터를 보는 방법

많은 측정값에서 변화나 차이를 찾으려면, 숫자만 읽는 것보다 어떤 표현이 도움이 될까요?

설명
  • 표: 특정 수치 확인 / 그래프: 변화 추세와 비교
  • 그래프의 해석에 필요한 축 이름·단위·범례 표시

실습

1. 배열의 모양

  1. score=[728590689588]\mathrm{score}=\begin{bmatrix}72&85&90&68&95&88\end{bmatrix}을 NumPy Array로 만들고 shape·dtype·평균·80 이상인 값과 그 개수를 출력하세요.
  2. 1~20을 (4,5)로 만든 뒤 첫 행, 마지막 열, 가운데 2행×3열 구간, 짝수만 선택한 결과를 각각 출력하세요.

2. 연산과 검증

  1. A=[2.01.01.03.0]A=\begin{bmatrix}2.0&1.0\\1.0&3.0\end{bmatrix}, B=[1.00.02.01.0]B=\begin{bmatrix}1.0&0.0\\2.0&1.0\end{bmatrix}에서 Element-wise Product와 Matrix Multiplication을 계산하고 (0,1) 원소가 만들어지는 과정을 설명하세요.
  2. A의 Determinant와 Inverse를 구하고 A@Inverse가 Identity인지 np.allclose로 검증하세요.
  3. A[0,0]을 4로 바꾸어 반복하세요.

3. 결과를 그래프로

  1. x를 0~2π의 100개 표본으로 만들고 sin·cos를 같은 그래프에 표시하세요.
  2. 이어 epoch=[12345]\mathrm{epoch}=\begin{bmatrix}1&2&3&4&5\end{bmatrix}, loss=[1.81.20.90.70.6]\mathrm{loss}=\begin{bmatrix}1.8&1.2&0.9&0.7&0.6\end{bmatrix}, accuracy=[0.40.60.70.750.78]\mathrm{accuracy}=\begin{bmatrix}0.4&0.6&0.7&0.75&0.78\end{bmatrix}을 사용해 2×2 Figure에 sin, cos, Loss, Accuracy를 각각 표시하세요.
  3. 축·Legend를 쓰고 최대 Accuracy의 위치를 코드로 찾아 annotation으로 표시하세요.

제출·저장

코드, 실제 Output·그래프, 직접 작성한 해석을 포함하세요. 제출은 KLAS를 이용하며 기한은 학기 일정과 최신 공지를 확인합니다.

파일명: 이름_학번_3주차.ipynb.

실행 환경을 다시 시작하고 전체 코드를 위에서부터 실행한 뒤 저장하세요.

선택 실습

원소 수가 맞지 않는 reshape

  1. 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))
  2. Text Cell에 요청한 shape별 필요한 원소 수와 실행 성공 여부를 표로 적으세요. 성공한 배열에서 0부터 11까지의 값이 어떤 순서로 배치되는지도 한 문장으로 설명하세요.