Blair  - Soul Eater [파이썬 예제] Numpy 3- 최대 학급수/학생수/교사수 찾기

• programming language/python

[파이썬 예제] Numpy 3- 최대 학급수/학생수/교사수 찾기

oujin 2022. 7. 29. 20:07
728x90

CSV예제 파일을 다운받아 주세요

**입력하는 코드가 있는 파일과 같은 폴더에 위치해 있어야 합니다**

 

 

 

 

[파이썬 예제] Numpy 1- 최대 학급수/학생수/교사수 찾기

●CSV예제 파일을 다운받아 주세요 **입력하는 코드가 있는 파일과 같은 폴더에 위치해 있어야 합니다** import csv f = open('school_2019.csv', 'r', encoding='utf-8') #school_2019.csv 파일을 열어서..

oujin.tistory.com

 

import csv
import numpy as np

f = open('school_2019.csv', 'r', encoding='utf-8')
lines = csv.reader(f)

header = next(lines)

list_data = []
for line in lines :
    list_data.append(line[:])

length = len(list_data)

data = np.zeros((length, 3), dtype='int32')

for i in range(length) :
    for j in range(3) :
        data[i][j] = list_data[i][j+2]

#CSV 파일을 2차원 리스트(list_data)에 저장하고, 다시 리스트의 데이터를 Numpy의 ndarray 배열 data 객체에 저장

max_index = np.argmax(data, axis=0)

#각 열을 기준으로  data에서 가장 큰 값의 인덱스 로 구성된 ndarray 배열 객체

 

print(max_index)

#최대 학생수, 최대학생수, 최대교생수를 가진 요소의 인덱스 출력


max_class = list_data[max_index[0]][1]

#max_index[0]은 138이고 이 138은 list_data의 행인덱스가 된다. 따라서 list_data[138][1]을 검색하는 것과 동일

#가장 많은 학급수를 가진 학교명 추출

num_class = list_data[max_index[0]][2]
#max_index[0]은 138이고 이 138은 list_data의 행인덱스가 된다. 따라서 list_data[138][2]을 검색하는 것과 동일

#가장 많은 학급수를 가진 학교의 학급수 추출


max_student = list_data[max_index[1]][1]

#max_index[1]은 1999이고 이 1999는 list_data의 행인덱스가 된다. 따라서 list_data[1999][1]을 검색하는 것과 동일

#가장 많은 학생수를 가진 학교명 추출

num_student = list_data[max_index[1]][3]

#max_index[0]은 1999이고 이 1999은 list_data의 행인덱스가 된다. 따라서 list_data[1999][3]을 검색하는 것과 동일

#가장 많은 학생수를 가진 학교의 학생수 추출


max_teacher = list_data[max_index[2]][1]

#max_index[0]은 138이고 이 138은 list_data의 행인덱스가 된다. 따라서 list_data[138][1]을 검색하는 것과 동일

#가장 많은 교사수를 가진 학교명 추출

num_teacher = list_data[max_index[2]][4]

#max_index[0]은 138이고 이 138은 list_data의 행인덱스가 된다. 따라서 list_data[138][4]를 검색하는 것과 동일

#가장 많은 교사수를 가진 학교의 교사수 추출



print('최대 학급수의 초등학교 : %s, 학급수 : %s개 ' % (max_class,num_class ))
print('최대 학생수의 초등학교 : %s, 학생수 : %s명' % (max_student,num_student ))
print('최대 교사수의 초등학교 : %s, 교사수 : %s명' % (max_teacher,num_teacher ))

f.close()

 

[ 138 1999  138]
최대 학급수의 초등학교 : 서울신정초등학교, 학급수 : 75개 
최대 학생수의 초등학교 : 탄벌초등학교, 학생수 : 2178명
최대 교사수의 초등학교 : 서울신정초등학교, 교사수 : 91명

 

 

 

 

 

 

 

 

 

출처: 예제 중심 파이썬 입문

궁금한 부분이 있으면 댓글 부탁드립니다^^

728x90