
import numpy as np
def Math_score(score_array): ##문제1
math_score_array = score_array[:, 2] #모든 행(학생)의 세 번째 열(수학 점수) 추출
for i, score in enumerate(math_score_array):
print(f"학생{i+1}: {score}")
def Total_score(score_array): ##문제2
total_score_array = np.sum(score_array, axis=1) #각 행(학생)별로 모든 열의 값(과목 점수) 더하기
for i, score in enumerate(total_score_array):
print(f"학생{i+1}: {score}")
def Odd_students_score(score_array): ##문제3
odd_students = np.arange(score_array.shape[0]) %2==0 #인덱스가 0,2,4,6,8로 짝수인 행(즉, 홀수번째 학생)만 True로 선택
odd_students_score_array = score_array[odd_students] #홀수번째 학생들의 점수 추출
odd_students_score_array_reversed = odd_students_score_array[:, ::-1] #모든 행을 선택하고, 각 행의 열을 역순으로 저장
for i, score in enumerate(odd_students_score_array_reversed):
print(f"학생{i*2+1}: {score}")
def Max_score(score_array, subject_array): ##문제4 #매개변수 2개 받음
max_score_array = np.max(score_array, axis=0) #각 열(과목)별로 최대값 저장
for i in range(len(subject_array)):
print(f"{subject_array[i]}: {max_score_array[i]}")
def Below90_eng_score(score_array): ##문제5
for i in range(score_array.shape[0]): #모든 행(학생)에 대해 반복
if score_array[i, 1]<90: #각 행(학생)의 두 번째 열(영어 점수)이 90 미만인 경우
print(f"학생{i+1}: {score_array[i]}")
def Avg_score(score_array, subject_array): ##문제6 #매개변수 2개 받음
avg_score_array = np.mean(score_array, axis=0) #각 열(과목)별로 평균값 저장
for i in range(len(subject_array)):
print(f"{subject_array[i]}: {avg_score_array[i]}")
def main():
np.random.seed(52)
score_array = np.random.randint(1, 101, size=(10,4)) #1부터 100까지의 랜덤 정수 값 10*4
subject_array = ['국어', '영어', '수학', '과학']
print("\n <문제1> 모든 학생의 수학 점수")
Math_score(score_array)
print("\n <문제2> 각 학생의 전과목 총합 점수")
Total_score(score_array)
print("\n <문제3> 홀수번째 학생들의 점수 (과학, 수학, 영어, 국어 순)")
Odd_students_score(score_array)
print("\n <문제4> 각 과목에서의 최대 점수")
Max_score(score_array, subject_array)
print("\n <문제5> 영어 과목이 90점 미만인 학생들의 점수 (국어, 영어, 수학, 과학 순)")
Below90_eng_score(score_array)
print("\n <문제6> 각 과목의 평균 점수")
Avg_score(score_array, subject_array)
main()
<문제1> 모든 학생의 수학 점수
학생1: 14
학생2: 33
학생3: 36
학생4: 34
학생5: 55
학생6: 46
학생7: 64
학생8: 40
학생9: 35
학생10: 75
<문제2> 각 학생의 전과목 총합 점수
학생1: 79
학생2: 219
학생3: 240
학생4: 238
학생5: 131
학생6: 231
학생7: 236
학생8: 143
학생9: 164
학생10: 304
<문제3> 홀수번째 학생들의 점수 (과학, 수학, 영어, 국어 순)
학생1: [24 14 12 29]
학생3: [100 36 92 12]
학생5: [47 55 12 17]
학생7: [40 64 77 55]
학생9: [44 35 21 64]
<문제4> 각 과목에서의 최대 점수
국어: 98
영어: 100
수학: 75
과학: 100
<문제5> 영어 과목이 90점 미만인 학생들의 점수 (국어, 영어, 수학, 과학 순)
학생1: [29 12 14 24]
학생2: [87 29 33 70]
학생5: [17 12 55 47]
학생6: [43 62 46 80]
학생7: [55 77 64 40]
학생8: [23 72 40 8]
학생9: [64 21 35 44]
학생10: [79 85 75 65]
<문제6> 각 과목의 평균 점수
국어: 50.7
영어: 56.2
수학: 43.2
과학: 48.4
'Analysis' 카테고리의 다른 글
[데이터마이닝] pandas-taxis 5lab (0) | 2024.12.05 |
---|---|
[데이터마이닝] Scikit-learn Winedata Lab4-sample (0) | 2024.12.05 |
[데이터마이닝] matplotlib - random 3 lap 과제 (0) | 2024.12.05 |
[데이터마이닝] Numpy 배열 (0) | 2024.12.05 |
[데이터마이닝] 파이썬 기초(2주차) (0) | 2024.12.05 |