NumPy
학습 목표
행과 열을 혼동하지 않고 표본별·특징별 집계를 계산하는 연습입니다.
축별 집계
시작 조건
이며 행은 표본, 열은 특징입니다.
진행 방법
axis=0과axis=1의 평균을 예상하고 NumPy로 확인하세요.- 첫 두 행·마지막 열·값이 4 이상인 원소를 각각 선택하세요.
남길 결과
- 집계·선택 결과 5행 이상의 표.
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 전후 평균·표준편차를 비교합니다.
진행 방법
X는 보존하고 복사본X2의 마지막 열만 100배 하세요. 변경 전후의 열별 평균·표준편차를 기록하세요.X2의 각 열에서 그 열의 평균을 빼고 표준편차로 나누세요. NumPy 기본값과 같은ddof=0을 사용합니다.- 열별 Standardization 전후 평균·표준편차를 나란히 적고, 100배 한 열이 다른 열과 같은 척도가 되었는지 두 통계량으로 설명하세요.
남길 결과
- 자료·열별 평균·표준편차의 비교 표.
X2=X.astype(float).copy();X2[:,-1]*=100
결과 기록·자가 점검
자료·열:
변경 전후 평균:
변경 전후 표준편차:
Standardization 결과:
확인할 점
- Standardization에 해당 열의 평균·표준편차를 사용했는가?
다른 입력에서도 확인하기
시작 조건
상수인 특징 열을 하나 추가했을 때 Standardization 분모가 0인 경우를 처리합니다.
진행 방법
- 모든 행에서 같은 값을 갖는 열 하나를
X에 붙이고 그 값과 열 위치를 적으세요. 예를 들어 값 1인 열을 붙일 수 있습니다. - 열별 평균과 표준편차를 구하고, 표준편차가 0인 열을 표시하세요. 그 열을 나누는 데 사용할 처리 규칙을 코드에 넣으세요. 예를 들어 해당 분모만 1로 둘 수 있습니다.
- 상수 열의 변환 결과와 전체 결과의
np.isfinite(...).all()을 기록하세요. 상수 열에서 표준편차를 그대로 나누면 무엇이 달라지는지 설명하세요.
남길 결과
- 상수 열의 처리 규칙·변환 결과와 유한값 판정.
# 앞 활동의 데이터와 함수를 사용해 지정된 새 예제를 검사하세요.
결과 기록·자가 점검
상수 열 위치·값:
평균·표준편차:
분모 0 처리 규칙:
변환한 열·유한값 판정:
확인할 점
- 표준편차가 0인 열의 처리와 실제 출력을 기록했는가?