随机生成60位同学成绩,并求他们的平均数,中位数,众数等
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))#打印出出现的众数