#이론 문제
1.reshape() 함수의 모든 차원 변수를 -1로 채우면 알아서 차원을 할당해준다. -> X
2.2차원 배열에서 insert() 함수의 axis를 지정해주지 않으면 1 차원 배열로 변환 후 인덱스 값에 넣어준다. -> O
3.append() 함수는 axis 값을 넣어주지 않으면 오류가 난다. -> X
4. 3 차원 배열 [[[1,2,3]]]에서 np.squeeze(arr)의 값을 출력하면 [[1,2,3]]이 나온다. -> X
5. hstack() 함수는 배열의 열이 달라도 사용할 수 있다. -> O
#실습 문제
# ---------------------------1번 파트---------------------------------------
import numpy as np
# 점수를 저장할 리스트 초기화
scores = []
# 사용자로부터 12명의 점수를 입력받기
for i in range(12):
score = int(input(f"{i + 1}번째 학생의 점수를 입력하세요: "))
scores.append(score) # 리스트에 한 루프당 1개씩 값 추가
# NumPy 배열로 변환
arr = np.array(scores)
# ---------------------------2번 파트---------------------------------------
print(arr)
# 평균 계산
mean = np.mean(arr)
# 분산 계산 (sum)
variance = np.sum((arr-mean)**2)/len(arr)
# 표준편차 계산
std_deviation = np.sqrt(variance)
print("표준편차:", std_deviation)
# ---------------------------3번 파트---------------------------------------
print("표준편차:", np.std(arr))
# ---------------------------4번 파트---------------------------------------
rank = np.sort(arr)[::-1]
print(rank)
# ---------------------------5번 파트---------------------------------------
# 3행 4열 행렬 만들기
Class = rank.reshape(3,4)
# 3행 4열의 행렬을 한 행씩 쪼개기
A,B,C =np.vsplit(Class,3)
print(f'class A: {A}\\nclass B: {B}\\nclass C: {C}')