- - 该文章为本人原创!主要是用来记录学习的过程和分享给需要的博友。若有出错或者更好解决方法欢迎评论和私信交流学习!!!

Numpy数据分析模块实训

- 根据“某门课程平时成绩和期末考试成绩.csv”内容,计算课程的平时成绩和期末考试成绩的均值、标准差、方差、最小值、最大值,输出期末考试比平时成绩高的学生名单,并输出期末考试排名前10名的学生(如果期末成绩相同,则平时成绩高的排在前面)。

导入响应的工具包

import pandas as pd
import numpy as np

读取数据源文件

df = pd.read_csv("data/某门课程平时成绩和期末考试成绩.csv")
# print('打印读取到的成绩:\n',df.head())
  • 这里打印出的结果

创建df_list,df_ps,df_qm对象并分别存储成绩数据

  • df_list——用来存储字典形式的成绩数据
  • df_ps——用来存储全部学生的平时成绩
  • df_qm——用来存储全部学生的期末成绩
df_list = []
df_ps = []
df_qm = []
for i in range(len(df)):df_list.append({'姓名':df['姓名'][i],'平时成绩':df['平时成绩'][i],'期末成绩':df['期末成绩'][i]})df_ps.append(df_list[i]['平时成绩'])df_qm.append(df_list[i]['期末成绩'])
print('df_list',df_list)
print('df_ps',df_ps)
print('df_qm',df_qm)
  • 输出结果:
df_list [{'姓名': 'stud_001', '平时成绩': 61.2, '期末成绩': 52.0}, {'姓名': 'stud_004', '平时成绩': 84.0, '期末成绩': 66.5}, {'姓名': 'stud_007', '平时成绩': 91.0, '期末成绩': 76.5}, {'姓名': 'stud_010', '平时成绩': 83.0, '期末成绩': 64.0}, {'姓名': 'stud_013', '平时成绩': 82.2, '期末成绩': 74.5}, {'姓名': 'stud_014', '平时成绩': 90.2, '期末成绩': 77.0}, {'姓名': 'stud_017', '平时成绩': 83.0, '期末成绩': 84.5}, {'姓名': 'stud_018', '平时成绩': 80.0, '期末成绩': 71.0}, {'姓名': 'stud_021', '平时成绩': 79.0, '期末成绩': 68.5}, {'姓名': 'stud_029', '平时成绩': 67.8, '期末成绩': 54.0}, {'姓名': 'stud_031', '平时成绩': 85.0, '期末成绩': 64.5}, {'姓名': 'stud_033', '平时成绩': 93.0, '期末成绩': 90.5}, {'姓名': 'stud_039', '平时成绩': 91.6, '期末成绩': 62.5}, {'姓名': 'stud_040', '平时成绩': 82.0, '期末成绩': 81.5}, {'姓名': 'stud_041', '平时成绩': 88.0, '期末成绩': 87.5}, {'姓名': 'stud_042', '平时成绩': 81.0, '期末成绩': 78.0}, {'姓名': 'stud_044', '平时成绩': 74.0, '期末成绩': 78.0}, {'姓名': 'stud_045', '平时成绩': 75.0, '期末成绩': 68.0}, {'姓名': 'stud_046', '平时成绩': 78.2, '期末成绩': 74.0}, {'姓名': 'stud_051', '平时成绩': 79.0, '期末成绩': 76.0}, {'姓名': 'stud_052', '平时成绩': 88.4, '期末成绩': 75.5}, {'姓名': 'stud_053', '平时成绩': 78.0, '期末成绩': 53.0}, {'姓名': 'stud_055', '平时成绩': 90.0, '期末成绩': 80.5}, {'姓名': 'stud_056', '平时成绩': 58.2, '期末成绩': 54.0}, {'姓名': 'stud_060', '平时成绩': 85.4, '期末成绩': 66.0}, {'姓名': 'stud_061', '平时成绩': 85.4, '期末成绩': 74.0}, {'姓名': 'stud_062', '平时成绩': 91.0, '期末成绩': 92.0}, {'姓名': 'stud_063', '平时成绩': 79.2, '期末成绩': 73.5}, {'姓名': 'stud_064', '平时成绩': 84.0, '期末成绩': 70.5}, {'姓名': 'stud_065', '平时成绩': 61.8, '期末成绩': 50.5}, {'姓名': 'stud_067', '平时成绩': 96.0, '期末成绩': 83.6}, {'姓名': 'stud_072', '平时成绩': 80.2, '期末成绩': 76.5}, {'姓名': 'stud_078', '平时成绩': 72.0, '期末成绩': 53.0}, {'姓名': 'stud_085', '平时成绩': 75.0, '期末成绩': 60.0}, {'姓名': 'stud_087', '平时成绩': 86.0, '期末成绩': 58.0}, {'姓名': 'stud_090', '平时成绩': 88.0, '期末成绩': 78.0}, {'姓名': 'stud_091', '平时成绩': 79.2, '期末成绩': 45.5}, {'姓名': 'stud_095', '平时成绩': 89.0, '期末成绩': 90.0}, {'姓名': 'stud_098', '平时成绩': 83.2, '期末成绩': 80.5}, {'姓名': 'stud_104', '平时成绩': 78.0, '期末成绩': 82.0}, {'姓名': 'stud_105', '平时成绩': 76.0, '期末成绩': 79.0}, {'姓名': 'stud_109', '平时成绩': 91.8, '期末成绩': 88.5}, {'姓名': 'stud_115', '平时成绩': 88.0, '期末成绩': 88.0}, {'姓名': 'stud_117', '平时成绩': 85.4, '期末成绩': 64.0}, {'姓名': 'stud_118', '平时成绩': 83.0, '期末成绩': 72.0}, {'姓名': 'stud_125', '平时成绩': 80.6, '期末成绩': 60.5}, {'姓名': 'stud_126', '平时成绩': 86.0, '期末成绩': 56.0}, {'姓名': 'stud_130', '平时成绩': 90.8, '期末成绩': 88.0}, {'姓名': 'stud_133', '平时成绩': 78.4, '期末成绩': 60.0}, {'姓名': 'stud_134', '平时成绩': 91.0, '期末成绩': 69.0}, {'姓名': 'stud_135', '平时成绩': 66.0, '期末成绩': 69.5}, {'姓名': 'stud_136', '平时成绩': 84.0, '期末成绩': 71.0}, {'姓名': 'stud_140', '平时成绩': 74.0, '期末成绩': 73.5}, {'姓名': 'stud_141', '平时成绩': 84.2, '期末成绩': 76.0}, {'姓名': 'stud_148', '平时成绩': 80.0, '期末成绩': 72.0}, {'姓名': 'stud_151', '平时成绩': 80.0, '期末成绩': 60.0}, {'姓名': 'stud_152', '平时成绩': 80.0, '期末成绩': 84.5}, {'姓名': 'stud_158', '平时成绩': 74.0, '期末成绩': 48.0}, {'姓名': 'stud_159', '平时成绩': 91.0, '期末成绩': 88.0}, {'姓名': 'stud_160', '平时成绩': 83.6, '期末成绩': 71.0}, {'姓名': 'stud_170', '平时成绩': 94.0, '期末成绩': 90.0}, {'姓名': 'stud_184', '平时成绩': 70.0, '期末成绩': 65.0}, {'姓名': 'stud_185', '平时成绩': 87.0, '期末成绩': 67.0}, {'姓名': 'stud_186', '平时成绩': 81.0, '期末成绩': 86.0}, {'姓名': 'stud_187', '平时成绩': 91.4, '期末成绩': 83.5}, {'姓名': 'stud_191', '平时成绩': 84.0, '期末成绩': 76.0}, {'姓名': 'stud_192', '平时成绩': 95.4, '期末成绩': 91.0}, {'姓名': 'stud_194', '平时成绩': 92.8, '期末成绩': 82.5}, {'姓名': 'stud_195', '平时成绩': 88.8, '期末成绩': 65.0}, {'姓名': 'stud_202', '平时成绩': 80.4, '期末成绩': 70.5}, {'姓名': 'stud_207', '平时成绩': 90.0, '期末成绩': 86.5}, {'姓名': 'stud_209', '平时成绩': 76.0, '期末成绩': 80.0}, {'姓名': 'stud_211', '平时成绩': 79.0, '期末成绩': 64.0}, {'姓名': 'stud_212', '平时成绩': 85.4, '期末成绩': 77.0}, {'姓名': 'stud_213', '平时成绩': 97.0, '期末成绩': 89.5}, {'姓名': 'stud_215', '平时成绩': 82.0, '期末成绩': 65.5}, {'姓名': 'stud_216', '平时成绩': 79.0, '期末成绩': 75.5}, {'姓名': 'stud_217', '平时成绩': 75.0, '期末成绩': 52.0}, {'姓名': 'stud_224', '平时成绩': 75.0, '期末成绩': 55.0}, {'姓名': 'stud_231', '平时成绩': 81.0, '期末成绩': 66.0}, {'姓名': 'stud_232', '平时成绩': 64.0, '期末成绩': 39.0}, {'姓名': 'stud_233', '平时成绩': 77.0, '期末成绩': 84.0}, {'姓名': 'stud_246', '平时成绩': 92.0, '期末成绩': 79.5}, {'姓名': 'stud_251', '平时成绩': 84.0, '期末成绩': 69.0}, {'姓名': 'stud_254', '平时成绩': 73.0, '期末成绩': 71.0}, {'姓名': 'stud_262', '平时成绩': 81.0, '期末成绩': 90.0}, {'姓名': 'stud_264', '平时成绩': 80.0, '期末成绩': 74.5}, {'姓名': 'stud_270', '平时成绩': 89.0, '期末成绩': 76.5}, {'姓名': 'stud_275', '平时成绩': 82.0, '期末成绩': 83.5}, {'姓名': 'stud_278', '平时成绩': 70.0, '期末成绩': 76.0}, {'姓名': 'stud_280', '平时成绩': 82.0, '期末成绩': 89.0}, {'姓名': 'stud_281', '平时成绩': 92.0, '期末成绩': 86.0}, {'姓名': 'stud_286', '平时成绩': 89.4, '期末成绩': 78.0}, {'姓名': 'stud_292', '平时成绩': 89.8, '期末成绩': 84.5}, {'姓名': 'stud_295', '平时成绩': 95.6, '期末成绩': 66.0}, {'姓名': 'stud_306', '平时成绩': 91.0, '期末成绩': 77.0}, {'姓名': 'stud_314', '平时成绩': 87.0, '期末成绩': 65.5}, {'姓名': 'stud_316', '平时成绩': 81.4, '期末成绩': 71.0}, {'姓名': 'stud_317', '平时成绩': 79.0, '期末成绩': 76.0}, {'姓名': 'stud_318', '平时成绩': 92.0, '期末成绩': 91.0}]
df_ps [61.2, 84.0, 91.0, 83.0, 82.2, 90.2, 83.0, 80.0, 79.0, 67.8, 85.0, 93.0, 91.6, 82.0, 88.0, 81.0, 74.0, 75.0, 78.2, 79.0, 88.4, 78.0, 90.0, 58.2, 85.4, 85.4, 91.0, 79.2, 84.0, 61.8, 96.0, 80.2, 72.0, 75.0, 86.0, 88.0, 79.2, 89.0, 83.2, 78.0, 76.0, 91.8, 88.0, 85.4, 83.0, 80.6, 86.0, 90.8, 78.4, 91.0, 66.0, 84.0, 74.0, 84.2, 80.0, 80.0, 80.0, 74.0, 91.0, 83.6, 94.0, 70.0, 87.0, 81.0, 91.4, 84.0, 95.4, 92.8, 88.8, 80.4, 90.0, 76.0, 79.0, 85.4, 97.0, 82.0, 79.0, 75.0, 75.0, 81.0, 64.0, 77.0, 92.0, 84.0, 73.0, 81.0, 80.0, 89.0, 82.0, 70.0, 82.0, 92.0, 89.4, 89.8, 95.6, 91.0, 87.0, 81.4, 79.0, 92.0]
df_qm [52.0, 66.5, 76.5, 64.0, 74.5, 77.0, 84.5, 71.0, 68.5, 54.0, 64.5, 90.5, 62.5, 81.5, 87.5, 78.0, 78.0, 68.0, 74.0, 76.0, 75.5, 53.0, 80.5, 54.0, 66.0, 74.0, 92.0, 73.5, 70.5, 50.5, 83.6, 76.5, 53.0, 60.0, 58.0, 78.0, 45.5, 90.0, 80.5, 82.0, 79.0, 88.5, 88.0, 64.0, 72.0, 60.5, 56.0, 88.0, 60.0, 69.0, 69.5, 71.0, 73.5, 76.0, 72.0, 60.0, 84.5, 48.0, 88.0, 71.0, 90.0, 65.0, 67.0, 86.0, 83.5, 76.0, 91.0, 82.5, 65.0, 70.5, 86.5, 80.0, 64.0, 77.0, 89.5, 65.5, 75.5, 52.0, 55.0, 66.0, 39.0, 84.0, 79.5, 69.0, 71.0, 90.0, 74.5, 76.5, 83.5, 76.0, 89.0, 86.0, 78.0, 84.5, 66.0, 77.0, 65.5, 71.0, 76.0, 91.0]Process finished with exit code 0

对平时成绩和期末考试成绩分别求均值、标准差、方差、最小值、最大值

  • 平时成绩:
print('平时成绩的均值:',np.std(df_ps))
print('平时成绩的标准差:',np.std(df_ps))
print('平时成绩的方差:',np.var(df_ps))
print('平时成绩的最小值:',np.min(df_ps))
print('平时成绩的最大值:',np.max((df_ps)))
  • 输出结果:
平时成绩的均值: 7.911381927324707
平时成绩的标准差: 7.911381927324707
平时成绩的方差: 62.589964
平时成绩的最小值: 58.2
平时成绩的最大值: 97.0Process finished with exit code 0
  • 期末成绩:
print('期末成绩的均值:',np.std(df_qm))
print('期末成绩的标准差:',np.std(df_qm))
print('期末成绩的方差:',np.var(df_qm))
print('期末成绩的最小值:',np.min(df_qm))
print('期末成绩的最大值:',np.max((df_qm)))
  • 输出结果:
期末成绩的均值: 11.791242682601355
期末成绩的标准差: 11.791242682601355
期末成绩的方差: 139.033404
期末成绩的最小值: 39.0
期末成绩的最大值: 92.0Process finished with exit code 0

输出期末考试比平时成绩高的学生名单

df_qm_ps = []
for j in range(len(df)):if df_list[j]['期末成绩'] > df_list[j]['平时成绩']:df_qm_ps.append(df_list[j]['姓名'])
print('期末考试比平时成绩高的学生名单:\n',df_qm_ps)
  • 输出的结果:
期末考试比平时成绩高的学生名单:['stud_017', 'stud_044', 'stud_062', 'stud_095', 'stud_104', 'stud_105', 'stud_135', 'stud_152', 'stud_186', 'stud_209', 'stud_233', 'stud_262', 'stud_275', 'stud_278', 'stud_280']Process finished with exit code 0

创建列表来存储期末成绩前十名的数据

  • 用np.argsort 对期末成绩进行排序,并获得其下标排序
df_qm_ten = [] # 存储前十名同学的名单
df_qm_ten_zan_qm = [] # 存储前十名同学的期末成绩
df_qm_ten_zan_ps = [] # 存储前十名同学的平时成绩
df_qm_argsort = np.argsort(df_qm)[-10:] # 获得前十名同学对应的索引
print(df_qm_argsort)
  • 输出结果:
[41 90 74 85 60 37 11 66 99 26]Process finished with exit code 0

获得前十同学的期末和平时成绩的排序,并用lexsort函数进行二维排序

  • 用lexsort函数解决同分时比较平时成绩
for i in df_qm_argsort:# print(i)df_qm_ten_zan_qm.append(df_list[i]['期末成绩'])df_qm_ten_zan_ps.append(df_list[i]['平时成绩'])ind = np.lexsort((df_qm_ten_zan_ps, df_qm_ten_zan_qm)) # 同分比较平时成绩后的下标排列

通过遍历的方法把期末成绩前十由大到小输出

df_qm_ps = []
for j in range(len(df)):if df_list[j]['期末成绩'] > df_list[j]['平时成绩']:df_qm_ps.append(df_list[j]['姓名'])
print('期末考试比平时成绩高的学生名单:\n',df_qm_ps)
  • 输出的结果:
期末考试比平时成绩高的学生名单:['stud_017', 'stud_044', 'stud_062', 'stud_095', 'stud_104', 'stud_105', 'stud_135', 'stud_152', 'stud_186', 'stud_209', 'stud_233', 'stud_262', 'stud_275', 'stud_278', 'stud_280']Process finished with exit code 0

完整代码

GitHub:完整代码

Numpy数据分析模块实训-【根据“某门课程平时成绩和期末考试成绩.csv”内容,计算课程的平时成绩和期末考试成绩的均值、标准差、方差、最小值、最大值,输出期末考试比平时成绩高的学生名单,并输出期末】相关推荐

  1. 会议通知|2019暑期全国高校Python数据分析与实训课程高级研修班

    全国高校Python数据分析与实训课程 高级研修班 通   知     各高校教务处.各相关院系负责人: 依据<教育部高等学校教学指导委员会章程>规定,教育部高等学校教学指导委员会的任务之 ...

  2. Python数据分析——白葡萄酒实训

    文章目录 一:数据收集 二:读取数据 1:显示前5行数据 三:数据处理 1:查看白葡萄酒总共分为几种品质等级 2:统计等级及其数量 条形图展示 3:计算每个数据集中fixed acidity的均值 一 ...

  3. 信号完整性分析大作业_Matplotlib数据可视化 amp; Pandas数据分析 综合实训大作业...

    csv文件链接 链接:https://pan.baidu.com/s/1-Q9riIfwTWN1AdV2Fb0eVw 提取码:7stb 1.1设置中文以及负数的编码方式,使得其能够正常显示: # re ...

  4. 电子商务模块实训作业

    一.B2B电子商务网站:阿里巴巴,环球资源内贸网 1.阿里巴巴 特点:具有完善的功能和简单易懂的操作.坚持做任何生意的人都有.首页非常全面,布置的非常合理,高计风格简单有个性:最重要的是有" ...

  5. Python numpy 求均值 标准差 方差 及参数介绍

    MID:MA(CLOSE,20);//求N个周期的收盘价均线,称为布林通道中轨 TMP2:=STD(CLOSE,20);//求M个周期内的收盘价的标准差 TOP:MID+2*TMP2;//布林通道上轨 ...

  6. 计算机英语期末考试方案,【计算机英语论文】计算机实训考核方法改革方案(共4649字)...

    摘要:分析计算机实训课程考核的现状,通过引入美国项目管理指南中的"绩效管理"和"里程碑 管理"理念,提出一套客观.公正和准确地评价每个学生的考核改革办法,从实训 ...

  7. 青软集团大数据和人工智能实训室 助力西北工业大学高端软件人才培养

    新时代背景下,高校在人才培养的过程中,需要搭建理论与实践并进的桥梁.与产业接轨的渠道.作为国家「一流大学」建设高校,西北工业大学也在积极寻找创新方法.创新模式,力在选拔.培养一批有志于服务国家重大战略 ...

  8. 智能楼宇可视化对讲及门禁对讲系统实训装置

    智能楼宇可视化对讲及门禁对讲系统实训装置 产品型号和技术规格 产品特点: (1) 本实训装置为智能楼宇可视对讲及门禁部分,通过此装置进行项目训练,学生掌握楼宇访客住户门口对讲系统布线和应用.出入口门禁 ...

  9. 物联网智慧农业实训室实训基地建设方案(完整版)

    物联网智慧农业实训室概述 物联网是我国战略性新兴产业的重要组成部分,<物联网"十二五"发展规划>圈定了10大领域重点示范工程,智能农业便是其中之一.<物联网&qu ...

最新文章

  1. 【转】mssql中大小写的区分
  2. 如何配置三层交换机创建VLAN
  3. 成功解决import matplotlib; matplotlib.use('Agg') # pylint: disable=multiple-statements
  4. 一个跨国银行的敏捷转型案例要点之全员培训
  5. 怎么查看ubuntu是多少位和常用信息
  6. [置顶] C语言中各种数据类型的长度 sizeof char, short, int, long, long long
  7. thinkinjava21.4.4----java中interrupt和interrupted方法的使用和线程退出的时机
  8. linux的进程栈和线程栈
  9. java做flv直播服务器,EasyDSS流媒体服务器软件(支持RTMP/HLS/HTTP-FLV/视频点播/视频直播)-正式环境安装部署攻略...
  10. ubuntu防火墙关闭命令-转
  11. 小白的python之路Linux部分10/2829
  12. TortoiseGit推送
  13. 【Android综合应用】概述
  14. 架设好传奇登录器显示无法连接服务器,完美登录器使用常见问题解决办法
  15. python核心编程之Python聚类算法之凝聚层次聚类实例分析
  16. Linux 下文件IO编程进程控制实验
  17. NATAPP使用笔记02
  18. GD32f103介绍第一章
  19. win安装android系统服务,win7系统安装安卓软件WindowsAndroid的方法
  20. Win10隐藏文件资源管理器中的我的电脑上方的7个文件夹

热门文章

  1. 一个女孩的职场经历(续二)
  2. 什么是聚合路由器?聚合路由器支持的链路类型有哪些?
  3. python新年贺卡_python验指导书.docx
  4. 修改word中插入-书签快捷键:Ctrl+Shift+F5快捷键的方式
  5. C#中WriteLine与Write ReadLine与ReadKeyR与Read的区别:
  6. OleDbDataReader数据读取器
  7. WebApp开发:ajax请求跨域问题的解决
  8. STM32——继电器控制
  9. 音乐背景声提取 matlab,如何从视频中提取背景音乐 但不要对白, 视频片段背景音乐很好听怎么提取不要有人讲话...
  10. Google Cloud: 如何删除Google Cloud Platform帐户? Google Cloud Platform 取消升级成付费账户, 谷歌云免费额度用完到期,怎么删除账号