강의자료 · 머신러닝의 이해

NumPy

학습 목표

행과 열을 혼동하지 않고 표본별·특징별 집계를 계산하는 연습입니다.

축별 집계

시작 조건

X=[246135024357]X=\begin{bmatrix}2&4&6\\1&3&5\\0&2&4\\3&5&7\end{bmatrix}이며 행은 표본, 열은 특징입니다.

진행 방법

  1. axis=0과 axis=1의 평균을 예상하고 NumPy로 확인하세요.
  2. 첫 두 행·마지막 열·값이 4 이상인 원소를 각각 선택하세요.

남길 결과

import numpy as np
import matplotlib.pyplot as plt
X=np.array([[2,4,6],[1,3,5],[0,2,4],[3,5,7]])
print(X.mean(axis=0),X.mean(axis=1))

결과 기록·자가 점검

연산:

예상 shape:

실제 shape:

결과:

확인할 점

스케일이 다른 특징

시작 조건

마지막 열만 100배 한 자료를 만들고, 열별 Standardization 전후 평균·표준편차를 비교합니다.

진행 방법

  1. X는 보존하고 복사본 X2의 마지막 열만 100배 하세요. 변경 전후의 열별 평균·표준편차를 기록하세요.
  2. X2의 각 열에서 그 열의 평균을 빼고 표준편차로 나누세요. NumPy 기본값과 같은 ddof=0을 사용합니다.
  3. 열별 Standardization 전후 평균·표준편차를 나란히 적고, 100배 한 열이 다른 열과 같은 척도가 되었는지 두 통계량으로 설명하세요.

남길 결과

X2=X.astype(float).copy();X2[:,-1]*=100

결과 기록·자가 점검

자료·열:

변경 전후 평균:

변경 전후 표준편차:

Standardization 결과:

확인할 점

다른 입력에서도 확인하기

시작 조건

상수인 특징 열을 하나 추가했을 때 Standardization 분모가 0인 경우를 처리합니다.

진행 방법

  1. 모든 행에서 같은 값을 갖는 열 하나를 X에 붙이고 그 값과 열 위치를 적으세요. 예를 들어 값 1인 열을 붙일 수 있습니다.
  2. 열별 평균과 표준편차를 구하고, 표준편차가 0인 열을 표시하세요. 그 열을 나누는 데 사용할 처리 규칙을 코드에 넣으세요. 예를 들어 해당 분모만 1로 둘 수 있습니다.
  3. 상수 열의 변환 결과와 전체 결과의 np.isfinite(...).all()을 기록하세요. 상수 열에서 표준편차를 그대로 나누면 무엇이 달라지는지 설명하세요.

남길 결과

# 앞 활동의 데이터와 함수를 사용해 지정된 새 예제를 검사하세요.

결과 기록·자가 점검

상수 열 위치·값:

평균·표준편차:

분모 0 처리 규칙:

변환한 열·유한값 판정:

확인할 점