평균 계산하기 따라하기 (Calculate the average)
오늘은 파이썬으로 평균 구하는 방법을 간단히 살펴보겠습니다.
흔히 (숫자들의 총합)/(더한 숫자들의 총갯수)로 평균을 구합니다.
그럼 바로 평균을 구해보겠습니다.
파일 이름은 Average.py로 만들어 봤습니다.
I. 올드스쿨 방식입니다.
stud1=[39,29,95,70,49]
stud2=[60,62,79,86,29]
stud3=[10,20,30,40,50]
score1=0
score2=0
score3=0
for i in range(0,5):
score1=score1+stud1[i]
score2=score2+stud2[i]
score3=score3+stud3[i]
print("학생1의 평균 : {}, 학생2의 평균 : {}, 학생3의 평균 : {}".format(score1/5,score2/5,score3/5))
1 뭉텅이는 학생1, 학생2, 학생3의 5과목 점수를 리스트 형태로 표현한 상태입니다.
2 뭉텅이는 과목의 총합이 누적될 변수를 초기화시키는 과정입니다. score1, score2, score3에 각각 점수가 들어갑니다.
3 뭉텅이에서는 i가 0번째 인덱스부터 4번째 인덱스까지 반복됩니다. range(0,5) 이니 0,1,2,3,4가 반복됩니다.
이렇게 0부터 4번째까지 돌면 5개 인덱스 값이 scoreX에 누적됩니다.
마지막행에서 (학생1의 평균 : {})의 포맷 형태로 값이 출력됩니다. 단 이 포맷 형태에서 socre1/5, socre2/5, score3/5 방식으로 출력됩니다.
즉, (누적값/5)로써 평균이 나오게 됩니다. 굉장히 지저분하고 번거로운 코딩 방식입니다.
C:\Users\ATIV\Downloads\myworks>python .\Average.py
학생1의 평균 : 56.4, 학생2의 평균 : 63.2, 학생3의 평균 : 30.0
II. 평균을 구하는 가장 보편적인 방법입니다.
stud1=[39,29,95,70,49]
print( sum(stud1)/len(stud1) )
1행 리스트 이름을 stud1로 정의했습니다.
2행에서 sum은 리스트들의 총합 282를 의미합니다.
2행에서 len은 리스트의 개수 5를 의미합니다.
따라서 282/5= 56.4를 출력합니다.
C:\Users\ATIV\Downloads\myworks>python .\Average.py
56.4
III. 넘파이 라이브러리를 사용하는 방법입니다.
간단히 Numpy란 다차원 배열을 효과적으로 처리할 수 있도록 도와주는 파이썬 라이브러리입니다.
흔히 사용되는 random 패키지처럼 파이썬에 있는 도구라고 생각하시면 됩니다.
numpy 사용 시 코드 작성량이 비약적으로 줄어들게 됩니다. 굉장히 편리한 도구입니다.
import numpy #파이썬에서 넘파이 라이브러리를 가져옵니다.
stud1=[39,29,95,70,49]
print(numpy.mean(stud1)) # mean은 평균을 의미합니다.
print(numpy.var(stud1)) # var는 분산을 의미합니다.
print(numpy.std(stud1)) # std는 표준편차를 의미합니다.
C:\Users\ATIV\Downloads\myworks>python .\Average.py
56.4
556.6399999999999
23.593219364893802
넘파이 라이브러리를 사용하면 III처럼 코드가 비약적으로 줄어드는 것을 확인할 수 있습니다.
물론 코딩 방식은 다양하고 자신이 편한 방법을 선택하면 됩니다.
한정된 시간을 효과적으로 사용할 수 있는 넘파이 라이브러리 굉장히 매력적이지 않나요?
'코딩 따라하기' 카테고리의 다른 글
티케이인터 따라하기 (Coding Tkinter) (18) | 2020.12.10 |
---|---|
데이트타임 따라하기 (Coding the Datetime) (14) | 2020.12.09 |
람다식 따라하기 (Coding Lambda Function) (16) | 2020.12.07 |
예외처리 따라하기 (Coding Exception Handling) (10) | 2020.12.06 |
터틀 그래픽 따라하기 (Coding Turtle Graphics) (18) | 2020.12.04 |
댓글