2021年信号与系统作业统计处理
Posted 卓晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021年信号与系统作业统计处理相关的知识,希望对你有一定的参考价值。
简 介: 对于2021年信号与系统分析课程作业成绩进行整理
关键词
: 信号与系统,作业成绩
§01 作业原始表格
一、原始数据表格
由助教提交的作业统计的原始表格如下图所示。
1、表单结构
-
(1)表单的基本结构:
-
行数
:176,数据行数为175
列数
:35,从A ~ AI
▲ 图1.1 作业统计情况
-
(2)表格列的定义:
-
A
:学号
B
:姓名
C
:星标
D
:院系
E
:班级
F-AI
:15次作业,分数:备注
二、表格处理
1、读取表格内容
(1)将EXCEL转换成LIST
通过以下程序,将原始表格的内容转换成list。
from headm import *
import pandas as pd
#------------------------------------------------------------
def showexcel(filename):
excelfile = pd.read_excel(filename, sheet_name="sheet1")
listdata = excelfile.values.tolist()
strall = ''
for id,l in enumerate(listdata):
printff(id, l)
return listdata
from head import *
import inforsub
hworg = tspstring2text('hworg')
hwresult = tspstring2text('hwresult')
listdata = inforsub.showexcel(hworg)
tspsave('orgdata', listdata=listdata)
(2)读取listdata
listdata = tspload('orgdata', 'listdata')
printf(listdata)
[['2014011563' '冉靖尧' '男' ... 'nan' '0' 'nan']
['2017010370' '吴明辉' '男' ... 'nan' '0' 'nan']
['2017010677' '曹宇轩' '男' ... 'nan' '0' 'nan']
...
['2019050017' '杨紫妍' '女' ... 'nan' '10' '强']
['2019080349' '雍子隆' '男' ... 'nan' '10' 'nan']
['2020011096' '周建东' '男' ... 'nan' '10' '强']]
2、汇总表格算法
listdata = tspload('orgdata', 'listdata')
#------------------------------------------------------------
score = []
summary = []
for l in listdata:
sc = l[5::2]
sc[sc=='nan'] = '0'
scnum = [float(s) for s in sc]
score.append(sum(scnum))
sumstr = ['%s:%s'%(s1,s2) for s1,s2 in zip(l[5::2],l[6::2])]
str = ';'.join(sumstr).replace('nan', '')
printf(str)
summary.append(str)
tspsave('scoresum', score=score, summary=summary, listdata=listdata)
printf('\\a')
3、写入结果表格
(1)写入程序
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# WRITERLT.PY -- by Dr. ZhuoQing 2021-07-01
#
# Note:
#============================================================
from head import *
import inforsub
score, summary, listdata = tspload('scoresum', 'score', 'summary', 'listdata')
resultfile = tspstring2text("hwresult")
printf(resultfile)
for id,s in enumerate(score):
sid = listdata[id][0]
sumstr = summary[id]
# printff(sid, s, sumstr)
ret = inforsub.setexcelcellstring(resultfile, sid, "分数", s)
ret = inforsub.setexcelcellstring(resultfile, sid, "总结", sumstr)
if ret < 0:
printff("ERROR:", sid, s, sumstr)
# if id > 10: break
printf("\\a")
#------------------------------------------------------------
# END OF FILE : WRITERLT.PY
#============================================================
(2)没有对应的学生
总共有六个学生没有对应的结果。
ERROR: 2017010370 20.0 10:;10:;0.0:;0:;0:未交;0:;0:;0.0:;0:;0:;0:;0.0:;0:;0:;0:
ERROR: 2017010677 20.0 10:;10:;0.0:;0:;0:未交;0:;0:;0.0:;0:;0:;0:;0.0:;0:;0:;0:
ERROR: 2018011555 0.0 0:上传的是题目;0:;0.0:;0:;0:未交;0:;0:;0.0:;0:;0:;0:;0.0:;0:;0:;0:
ERROR: 2018012382 60.0 10:;10:;10.0:;10:;10.0:☆;10:;0:;0.0:;0:;0:;0:;0.0:;0:;0:;0:
ERROR: 2019012682 30.0 10:☆;10:;0.0:;0:;0:未交;0:;0:;0.0:;0:;0:;0:;10.0:;0:;0:;0:
ERROR: 2019013372 13.0 8:1、6题没有;5:;0.0:;0:;0:未交;0:;0:;0.0:;0:;0:;0:;0.0:;0:;0:;0:
(3)最后统计结果
学号 | 姓名 | 分数 |
---|---|---|
2014011563 | 冉靖尧 | 90 |
2017011044 | 蔡漫锋 | 139 |
2017011574 | 吕光冉 | 110 |
2018010352 | 张卓宇 | 150 |
2018010520 | 孙超 | 150 |
2018010521 | 张一博 | 140 |
2018010682 | 潘文凯 | 150 |
2018010691 | 黄昭源 | 145 |
2018010740 | 徐昕翃 | 133 |
2018010756 | 张凯 | 145 |
2018010783 | 昕琦 | 150 |
2018011464 | 陈吉坤 | 146 |
2018011495 | 杨小诺 | 148 |
2018011524 | 刘毓灵 | 74.5 |
2018011682 | 闫泽 | 150 |
2018011738 | 袁彦龙 | 150 |
2018011855 | 褚驰 | 150 |
2018012075 | 孙熙凯 | 150 |
2018012249 | 瞿近远 | 140 |
2018012263 | 陈景浩 | 64 |
2019010134 | 卢逸名 | 150 |
2019010421 | 武昊 | 150 |
2019010452 | 王与时 | 150 |
2019010465 | 姜永鹏 | 150 |
2019010482 | 徐诣堡 | 145 |
2019010485 | 刘祖炎 | 150 |
2019010532 | 刘康城 | 150 |
2019010550 | 苍岳洋 | 150 |
2019010552 | 邢海潼 | 145 |
2019010627 | 周思维 | 20 |
2019010643 | 仇铮 | 150 |
2019010645 | 尹鹏 | 149 |
2019010659 | 余珮琪 | 145 |
2019010674 | 李晨韬 | 150 |
2019010702 | 周义函 | 150 |
2019010708 | 关博文 | 140 |
2019010729 | 时清扬 | 150 |
2019010733 | 王韬钧 | 150 |
2019010745 | 陈浩 | 150 |
2019010804 | 张智凯 | 150 |
2019010807 | 黄哲 | 150 |
2019010808 | 孟子斌 | 150 |
2019010812 | 牟准 | 150 |
2019010815 | 江群 | 150 |
2019010819 | 李永健 | 150 |
2019010821 | 李述 | 150 |
2019010830 | 高瞻远 | 138 |
2019010836 | 晏国凯 | 150 |
2019010837 | 陈洋 | 150 |
2019010838 | 许伟超 | 150 |
2019010840 | 谭跳 | 150 |
2019010842 | 何琳欣 | 150 |
2019010850 | 王逸钦 | 149 |
2019010874 | 谭龙涛 | 150 |
2019010927 | 王洹芊 | 150 |
2019010932 | 张睿喆 | 150 |
2019011351 | 左思清 | 125 |
2019011352 | 王啸轩 | 150 |
2019011353 | 闫梦蓓 | 150 |
2019011355 | 赵健桐 | 150 |
2019011356 | 康宇琦 | 150 |
2019011358 | 陈星 | 149 |
2019011359 | 王浩驰 | 147 |
2019011363 | 尹子康 | 150 |
2019011364 | 赖正宇 | 150 |
2019011365 | 骆科燚 | 149 |
2019011367 | 吴晔 | 140 |
2019011369 | 李俊杰 | 150 |
2019011370 | 王可 | 150 |
2019011371 | 王觉 | 140 |
2019011372 | 刘禹辰 | 78 |
2019011374 | 张博轩 | 150 |
2019011376 | 张云帆 | 145 |
2019011378 | 邓皓天 | 140 |
2019011379 | 于端瑞 | 140 |
2019011380 | 谷彧潇 | 150 |
2019011381 | 周亦哲 | 150 |
2019011382 | 杨鼎 | 148.5 |
2019011383 | 陈祥艺 | 150 |
2019011385 | 曹健博 | 150 |
2019011386 | 李亮龙 | 150 |
2019011389 | 张仁刚 | 150 |
2019011390 | 金理想 | 139 |
2019011392 | 黄语萱 | 150 |
2019011393 | 袁铭 | 150 |
2019011394 | 贾宇飞 | 140 |
2019011395 | 姚祎宁 | 138.5 |
2019011396 | 姜芯雨 | 150 |
2019011397 | 王博闻 | 138 |
2019011398 | 宋晓斌 | 150 |
2019011399 | 彭昱玚 | 145 |
2019011400 | 陈天瑞 | 135 |
2019011401 | 储勇 | 148.5 |
2019011402 | 张世乙 | 139.5 |
2019011403 | 魏浩 | 150 |
2019011406 | 李可伊 | 150 |
2019011408 | 黄彦彬 | 150 |
2019011410 | 何杰铃 | 140 |
2019011411 | 郑阳 | 127 |
2019011412 | 蔡颂濠 | 145 |
2019011413 | 周耀 | 140 |
2019011414 | 陈华清 | 139 |
2019011415 | 付迪帆 | 148 |
2019011417 | 杨宇新 | 150 |
2019011418 | 谢宇轩 | 150 |
2019011421 | 曹展翔 | 140 |
2019011422 | 邢旺 | 150 |
2019011424 | 钟毅 | 150 |
2019011425 | 李若然 | 150 |
2019011426 | 李浦豪 | 150 |
2019011427 | 韩东辰 | 150 |
2019011428 | 姚泊先 | 145 |
2019011429 | 雍征彼 | 150 |
2019011430 | 徐赫临 | 150 |
2019011431 | 叶金涛 | 140 |
2019011433 | 刘梓哲 | 150 |
2019011434 | 吕梦欣 | 150 |
2019011436 | 陈冠宇 | 150 |
2019011437 | 栾垚 | 150 |
2019011438 | 陈卓明 | 150 |
2019011439 | 于江伟 | 140 |
2019011440 | 沈念辰 | 150 |
2019011443 | 左思成 | 150 |
2019011445 | 梁亨源 | 150 |
2019011446 | 陈禹为 | 150 |
2019011447 | 仝牧坤 | 150 |
2019011448 | 张启航 | 144 |
2019011450 | 陈文泽 | 150 |
2019011451 | 郑姝榕 | 150 |
2019011452 | 杨珂凡 | 150 |
2019011453 | 吴征鸿 | 150 |
2019011454 | 宋雨璠 | 150 |
2019011455 | 曲世远 | 150 |
2019011457 | 明陈林 | 140 |
2019011458 | 党添添 | 150 |
2019011460 | 杨一凡 | 150 |
2019011462 | 何东阳 | 150 |
2019011463 | 黄正超 | 150 |
2019011464 | 盘卓实 | 150 |
2019011465 | 杜邦得 | 100 |
2019011467 | 温昊 | 150 |
2019011468 | 刘楠 | 150 |
2019011470 | 邢森 | 140 |
2019011471 | 任坤 | 150 |
2019011472 | 付欣旺 | 30 |
2019011473 | 王献文 | 70 |
2019011474 | 胡鑫豪 | 150 |
2019011475 | 王少儒 | 79 |
2019011494 | 杨凌晓 | 140 |
2019011523 | 尹航 | 140 |
2019011549 | 夏星鹏 | 145 |
2019011584 | 袁梦 | 150 |
2019011605 | 周佳祺 | 144 |
2019011616 | 魏冰川 | 140 |
2019011750 | 武可雯 | 150 |
2019011879 | 刘雪洁 | 150 |
2019012151 | 张帅 | 138 |
2019012428 | 邱亦文 | 150 |
2019012437 | 吕畅祺 | 140 |
2019012441 | 柴睿 | 75 |
2019012446 | 黄嘉诚 | 145 |
2019012447 | 金熠琦 | 150 |
2019012448 | 杨思行 | 150 |
2019012450 | 刘逸凯 | 150 |
2019013315 | 曹哲暄 | 140 |
2019050016 | 李子韩 | 150 |
2019050017 | 杨紫妍 | 150 |
2019080349 | 雍子隆 | 150 |
2020011096 | 周建东 | 126 |
三、作业统计
1、得分统计
可参考的Python语句: python–plt.hist函数的输入参数和返回值的解释
from headm import *
score, summary, listdata = tspload('scoresum', 'score', 'summary', 'listdata')
ret = plt.hist(score, 15)
printf('|'.join([str(int(n)) for n in ret[0]]))
printf(sum(score) / len(score))
plt.xlabel("分数范围")
plt.ylabel("频数")
plt.grid(True)
plt.tight_layout()
plt.show()
(1)得分数值
[ 90. 20. 20. 139. 110. 150. 150. 140. 150. 145. 133. 145.
150. 146. 148. 74.5 0. 150. 150. 150. 150. 140. 64. 60.
150. 150. 150. 150. 145. 150. 150. 150. 145. 20. 150. 149.
145. 150. 150. 140. 150. 150. 150. 150. 150. 150. 150. 150.
150. 150. 138. 150. 150. 150. 150. 150. 149. 150. 150. 150.
125. 150. 150. 150. 150. 149. 147. 150. 150. 149. 140. 150.
150. 140. 78. 150. 145. 140. 140. 150. 150. 148.5 150. 150.
150. 150. 139. 150. 150. 140. 138.5 150. 138. 150. 145. 135.
148.5 139.5 150. 150. 150. 140. 127. 145. 140. 139. 148. 150.
150. 140. 150. 150. 150. 150. 150. 145. 150. 150. 140. 150.
150. 150. 150. 150. 140. 150. 150. 150. 150. 150. 144. 150.
150. 150. 150. 150. 150. 140. 150. 150. 150. 150. 150. 100.
150. 150. 140. 150. 30. 70. 150. 79. 140. 140. 145. 150.
144. 140. 150. 150. 138. 150. 140. 75. 145. 150. 150. 150.
30. 140. 13. 150. 150. 150. 126. ]
(2)得分分布
【表1-1 作业各分段的分布】
10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | 110 | 120 | 130 | 140 | 150 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | 3 | 2 | 0 | 0 | 2 | 5 | 0 | 1 | 1 | 1 | 3 | 10 | 145 |
- 平均得分: 138.02
▲ 作业各分段的分布
■ 相关文献链接:
● 相关图表链接:
以上是关于2021年信号与系统作业统计处理的主要内容,如果未能解决你的问题,请参考以下文章