练习题:用numpy统计全班的成绩

练习题:统计全班的成绩

假设一个团队里有5名学员,成绩如下表所示。你可以用NumPy统计下这些人在语文、英语、数学中的平均成绩、最小成绩、最大成绩、方差、标准差。然后把这些人的总成绩排序,得出名次进行成绩输出。
在这里插入图片描述

代码实现:

import numpy as np
persontype=np.dtype({'names':['name','chinese','math','english','total'],'formats':['S32','i','i','i','i']})
students=np.array([('zhangfei',66,65,30,0),('guanyu',95,85,98,0),('zhaoyun',93,92,96,0),('huangzhong',90,88,77,0),('dianwei',80,90,90,0)],dtype=persontype)
Chinese=students[:]['chinese']
Math=students[:]['math']
English=students[:]['english']
print('Chinese_mean=',np.mean(Chinese))
print('Math_mean=',np.mean(Math))
print('English_mean=',np.mean(English))
print('Chinese_min=',np.amin(Chinese))
print('Math_min=',np.amin(Math))
print('English_min=',np.amin(English))
print('Chinese_man=',np.amax(Chinese))
print('Math_man=',np.amax(Math))
print('English_man=',np.amax(English))
print('Chinese_var=',np.var(Chinese))
print('Math_var=',np.var(Math))
print('English_var=',np.var(English))
print('Chinese_std=',np.std(Chinese))
print('Math_std=',np.std(Math))
print('English_std=',np.std(English))
students[:]['total']=Chinese+Math+English
# print(students)
# rank=np.sort(students,order='total')  # 在这里,reverse=True属性用不了,只能升序排,所以下面使用sorted列表排序
print('排名:')
rank = sorted(students,key=lambda t:t[4],reverse=True)  # 出来是一个列表
for i in rank:
    print(i)

np.sort()默认是按照升序排序的,去网上找了一通,发现并没有找到按降序排序的办法,只好使用了python自带的sorted排序,得到的是一个总分降序的列表。如果大家有更好的排序办法,欢迎留言区交流,十分感谢。

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天涯小才

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值