728x90
반응형

1번: 평균, 중위수 , 최빈값 구하기

A = [3,7,4,2,3,5,2,6]

print('mean : {}'.format(np.mean(A)))
print('median : {}'.format(np.median(A)))
# many = max(collections.Counter(A).values())
a = np.bincount(A)
print(a)
b = a.argmax()
many_idx = list(zip([i for i in range(max(A))],a ))
print(many_idx)
res=[]
for i,j in many_idx:
    if j== b:
        res.append(i)
print('many : {}'.format(res))
print(*res)

mean : 4.0 ==>평균
median : 3.5 ==> 중위값
[0 0 2 2 1 1 1 1] ==> 빈도수(0부터 7까지)
[(0, 0), (1, 0), (2, 2), (3, 2), (4, 1), (5, 1), (6, 1)]
many : [2, 3]
2 3

 

2번: 평균, 중위수 , 최빈값, 10%절사평균 구하기

 

A = [2,1,5,3,3,4,2,5,3,16]

print('mean : {}'.format(np.mean(A)))
print('median : {}'.format(np.median(A)))
A = sorted(A)
print(A)

# many = collections.Counter(A)
# print(many)

a = np.bincount(A)
print(a)
b = a.argmax()
many_idx = list(zip([i for i in range(max(A))],a ))
print(many_idx)
res=[]
for i,j in many_idx:
    if j== b:
        res.append(i)
print('many : {}'.format(res))
print(*res)

i = int(len(A) *0.1)  #10%절사 
j = int(len(A) - i) #10%절사
print("i : {}".format(i))
print("i : {}".format(j)) 
A = A[i:j]
print(A)
print("절사평균 : {}".format(np.mean(A)))

mean : 4.4
median : 3.0
[1, 2, 2, 3, 3, 3, 4, 5, 5, 16]
[0 1 2 3 1 2 0 0 0 0 0 0 0 0 0 0 1]
[(0, 0), (1, 1), (2, 2), (3, 3), (4, 1), (5, 2), (6, 0), (7, 0), (8, 0), (9, 0), (10, 0), (11, 0), (12, 0), (13, 0), (14, 0), (15, 0)]
many : [3]
3
i : 1
i : 9
[2, 2, 3, 3, 3, 4, 5, 5]
절사평균 : 3.375

 

 

3번: 평균, 중위수 , 제 1사분위수 , 제 3사분위수 구하기


marketing = [34.2 ,45.0,39.5,28.4,37.7,35.8,30.6,35.2,34.2,42.4]
hwaehak = [33.5,57.1,49.7,40.2,44.2,45.2,47.8,38.0,53.9,41.1,41.7,40.8,55.5,43.5,49.1,49.9]
NACE = []
NACE.append(marketing)
NACE.append(hwaehak)
name = ["marketing" , "hwaehak"]
print(NACE)
for i in range(len(NACE)):
    print("{} mean : {}".format(name[i] , np.mean(NACE[i])))
    print("{} median : {}".format(name[i] , np.median(NACE[i])))
    print("{} 1사분위수 : {}".format(name[i] , pd.DataFrame(NACE[i]).quantile(.25)[0]))
    print("{} 3사분위수 : {}".format(name[i] , pd.DataFrame(NACE[i]).quantile(.75)[0]))

==> quantile()함수는 DataFrame에서만 사용한다.

 

[[34.2, 45.0, 39.5, 28.4, 37.7, 35.8, 30.6, 35.2, 34.2, 42.4], [33.5, 57.1, 49.7, 40.2, 44.2, 45.2, 47.8, 38.0, 53.9, 41.1, 41.7, 40.8, 55.5, 43.5, 49.1, 49.9]]


marketing mean : 36.3
marketing median : 35.5
marketing 1사분위수 : 34.2
marketing 3사분위수 : 39.05


hwaehak mean : 45.7
hwaehak median : 44.7
hwaehak 1사분위수 : 41.025
hwaehak 3사분위수 : 49.75

 

 

4번 : 평균, 중위수 , 최빈값 구하기

Death = [2.6 , 0.7 , 0.6 , 1.3 ,1.0 ,0.7 ,0.5 ,0.7]
nation = list("한국 영국 독일 미국 프랑스 호주 스웨덴 일본".split(" "))
A = pd.DataFrame(Death , nation).transpose()
A.index = ['사망자']
A

사망자 통계

print("사망자 평균 : {}".format(np.mean(Death)))
print("중위수 : {}".format(np.median(Death)))
a = collections.Counter(Death).most_common() # most_common() 사용하기
print(a)

res = []
i=0
while True:
    if a[i][1]==a[0][1] and i!= len(a)-1:
        res.append(a[i][0])
        i+=1
    else:
        break
print("사망자 최빈값 : {}".format(' '.join(map(str, res)))) # join(map( ) ) 구절 기억하기

==> most_common() ==> 빈도수에 따른 내림차순으로 정렬해준다.

 

사망자 평균 : 1.0125
중위수 : 0.7
[(0.7, 3), (2.6, 1), (0.6, 1), (1.3, 1), (1.0, 1), (0.5, 1)]
사망자 최빈값 : [0.7]

 

출처 :  [쉽게 배우는 생활속의 통계학]  [북스힐 , 이재원] 

※혼자 공부 정리용

728x90
반응형

+ Recent posts