본문 바로가기

코딩으로 익히는 Python/Numpy

[Python] 05. numpy 통계 : argmin(), std(), median(), quantile(),sum(),max(),zip()예제

728x90
반응형
SMALL
import numpy as np
arr = np.array([22,11,33,44,55])

numpy의 통계 함수

 

  • argmin()
  • std()
  • median()
  • quantile()

통계 함수 예제

 

arr.argmin() # arr중 가장 작은 값의 인덱스 반환
[OUT] :

1

 

arr.std() # arr의 표준 편차 반환
[OUT] :

15.556349186104045

 

np.median(arr) #데이터를 정렬했을때 가운데 값
[OUT] :

33.0

 

np.quantile(arr,[0.25,0.5,0.75]) # arr의 제 1사분위수(0.25), 중앙값(0.5), 제 3사분위수(0,75) 값을 반환
[OUT] :

array([22., 33., 44.])

연습문제

 

kor = np.array( [60,55,70,30,20,90]) # 국어 점수

 

1. 국어 점수가 가장 큰 값을 구하시오

 

2. 국어 점수가 80점 이상인 값을 구하시오

 

3. 국어 점수가 50점 이상 80 이하인 값을 구하시오

 

4. 국어 점수의 평균을 구하시오

 

5. 국어 점수의 총합을 구하시오

 

6. 국어 점수가 40점 이하인 데이터를 삭제하시오

 

7. 국어 점수가 50점 이상인 데이터에 가산점 10%를 부여하시오

 

8. 국어 점수 top 2를 구하시오

 

9. 국어 점수가 70점 이상이면 '합격', 아니면 '불합격'으로 국어 점수와 함께 출력하시오


Solution

 

1. 국어 점수가 가장 큰 값을 구하시오

 

kor.max()
[OUT] :

90

 

2. 국어 점수가 80점 이상인 값을 구하시오

 

kor[kor>=80]
[OUT] :

array([90])

 

3. 국어 점수가 50점 이상 80 이하인 값을 구하시오

 

kor[(kor>=50)&(kor<=80)]
[OUT] :

array([72, 66])


4. 국어 점수의 평균을 구하시오

 

kor.mean()
[OUT] :

82.5


5. 국어 점수의 총합을 구하시오

 

kor.sum()
[OUT] :

330


6. 국어 점수가 40점 이하인 데이터를 삭제하시오

 

kor = np.delete(kor,np.where(kor<=40))
kor
[OUT] :

array([60, 55, 70, 90])


7. 국어 점수가 50점 이상인 데이터에 가산점 10%를 부여하시오

 

kor[kor>=50] = kor[kor>=50]*1.1
kor
[OUT] :

array([66, 60, 77, 99])


8. 국어 점수 top 2를 구하시오

 

np.sort(kor)[-1:-3:-1]
[OUT] :

array([99, 77])


9. 국어 점수가 70점 이상이면 '합격', 아니면 '불합격'으로 국어 점수와 함께 출력하시오

 

# 방법1
for i in range(len(kor)):
    if kor[i]>=70:
        print(kor[i], '합격')
    else:
        print(kor[i], '불합격')
[OUT] :

66 불합격
60 불합격
77 합격
99 합격

 

# 방법2
for s,r in zip(kor,np.where(kor>=70,'합격','불합격')):
    print(s,r)
[OUT] :

66 불합격
60 불합격
77 합격
99 합격

Review
- 마지막 문제 zip()과 np.where()쓰는 것은 생각하지 못했던 방법
728x90
반응형
LIST