1. 程式人生 > >隨機生成60位同學成績,並求他們的平均數,中位數,眾數等

隨機生成60位同學成績,並求他們的平均數,中位數,眾數等

nbsp ret list () random rand sta import count

import random
import numpy as np

def random_int_list(start, stop, length):
start, stop = (int(start), int(stop)) if start <= stop else (int(stop), int(start))
length = int(abs(length)) if length else 0
random_list = []
for i in range(length):
random_list.append(random.randint(start, stop))
return random_list
a=random_int_list(0,100,60)

print(a)#打印出60位同學的成績
[69, 90, 97, 3, 96, 70, 14, 19, 100, 38, 69, 9, 13, 27, 45, 87, 3, 91, 96, 98,
2, 3, 9, 68, 92, 5, 55, 90, 12, 0, 13, 0, 16, 65, 34, 73, 17, 42, 40, 81, 52, 0,
61, 78, 66, 22, 96, 58, 15, 80, 13, 27, 97, 14, 4, 7, 34, 31, 78, 29]#隨機生成,每次生成的數字都不一樣
print(np.mean(a))#打印出60位同學的平均數
45.21666666666667
print(np.mean(np.sort(a)[34:36]))#打印出60位同學的中位數
56.5
print(np.sort(a))#對60位同學成績大小進行排序

[ 0 0 0 2 3 3 3 4 5 7 9 9 12 13 13 13 14 14
15 16 17 19 22 27 27 29 31 34 34 38 40 42 45 52 55 58
61 65 66 68 69 69 70 73 78 78 80 81 87 90 90 91 92 96
96 96 97 97 98 100]

#求眾數
def get_mode(arr):
mode=[]
arr_appear=dict((a,arr.count(a)) for a in arr)#統計各個元素出現的次數
if max(arr_appear.values())==1: #如果出現最大的值為1
return #沒有眾數
else:
for k,v in arr_appear.items():
if v==max(arr_appear.values()):
mode.append(k);
return mode
print(get_mode(a))#打印出出現的眾數

隨機生成60位同學成績,並求他們的平均數,中位數,眾數等