信号与系统2022春季学期作业统计处理
Posted 卓晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了信号与系统2022春季学期作业统计处理相关的知识,希望对你有一定的参考价值。
简 介: 本文给出了作业信息处理过程一个相应的处理小程序。
关键词
: 信号与系统,作业,信息统计
§01 作业统计
这是2022年信号与系统春季学期学生提交作业统一处理。对于 同一学期 CDIE 学生作业处理工作已经在 信号与系统 2022s 作业统计处理 - CDIE 进行完毕。这里是针对 AUTO 大班学生作业处理情况。
一、作业原始资料
作业原始资料来自于助教在(2022-06-16)提交的所有同学作业批改EXCEL表格。数据文件如下。(解开该文件请参见: 将数据存储在博文中的图片中 )
1、EXCEL文件格式
助教提交的作业统计文件包括有14个Sheet, 分别命名为 week1 - week14。 表单包括五栏,分别是:学号、姓名、必做题、选做题、实验题。
▲ 图1.1.1 EXCEL 作业统计文件格式
2、作业处理
(1)处理目标
将所有的作业提交情况按照以下格式生成 TEXT 文件,便于学生能够通过公众号查询。每个学生信息占一行,每行的格式如下:
- 学号 姓名 必做题 选做题 实验题
其中的必做题、选做题、实验题的文字格式如下:
每次作业之间通过逗号(‘,’),前面是作业次数,右面是作业得分。
(2)作业处理流程
为了使用Python处理作业信息, 分成以下两步完成作业处理:
- 第一步: 将EXCEL表中的表单信息另存为14个TEXT文件;
- 第二步: 通过程序读取所有 TEXT文件信息,将其合并在alldata.npz数据文件中;
- 第三步: 根据输出要求,生成TEXT文件。
二、处理过程
1、信息合并
将所有 text 中的信息合并成数据文件:hmall.npz。
-
HMALL数据结构:
-
id
:序号
name
:姓名
hmall
:必做题
selall
:选做题
expall
:实验题
2、信息统计
(1)必做题得分统计
Average:9.180396
Std:1.734996
▲ 图1.2.1 必做题得分统计
(2)选做题得分统计
Average:1.519812
Std:2.239650
▲ 图1.2.2 选做题统计情况
(3)实验题得分统计
Average:0.562044
Std:1.503579
▲ 图1.2.3 实验题得分统计
三、信息公布查询抬头
信号与系统2022作业统计
学号:$1
姓名:$2
必做题总分:$3
选做题总分:$4
实验题总分:$5
必做题:%6
作业中的选做和实验总分将会与小论文
一起进行附加分的计算。
如果对于作业统计信息有疑问,请通过
EMAIL与助教联系:
吕康晨 lkc21@mails.tsinghua.edu.cn
※ 总 结 ※
本文给出了作业信息处理过程一个相应的处理小程序。
一、处理程序
▲ 图2.1 作业处理界面
1、作业信息预处理
from headm import *
textdir = tspstring2text('textdir')
filedim = os.listdir(textdir)
iddim = []
namedim = []
fname = os.path.join(textdir, filedim[0])
with open(fname, 'r') as f:
for l in f.readlines():
l = l.strip('\\n').split('\\t')
if l[0] == '学号':
continue
iddim.append(l[0])
namedim.append(l[1])
hmwall = [[] for _ in range(len(iddim))]
selall = [[] for _ in range(len(iddim))]
expall = [[] for _ in range(len(iddim))]
def str2number(s):
if len(s) == 0: return 0
return int(float(s))
for f in filedim:
fname = os.path.join(textdir, f)
with open(fname, 'r') as f:
for l in f.readlines():
l = l.strip('\\n').split('\\t')
if l[0] == '学号': continue
idindex = iddim.index(l[0])
hmwall[idindex].append(str2number(l[2]))
selall[idindex].append(str2number(l[3]))
expall[idindex].append(str2number(l[4]))
tspsave('hmall', id=iddim,name=namedim, hm=hmwall, sel=selall, exp=expall)
printf(hmwall)
2、作业信息统计
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# STATICS.PY -- by Dr. ZhuoQing 2022-06-18
#
# Note:
#============================================================
from headm import *
id, name, hm, sel, exp = tspload('hmall', 'id', 'name', 'hm', 'sel', 'exp')
hm.resize(size(hm))
sel.resize(size(sel))
exp.resize(size(exp))
hm=exp
printf('Average:%f'%average(hm), 'Std:%f'%std(hm))
plt.hist(hm)
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.grid(True)
plt.tight_layout()
plt.show()
#------------------------------------------------------------
# END OF FILE : STATICS.PY
#============================================================
3、查询信息生成
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# GENERATE.PY -- by Dr. ZhuoQing 2022-06-18
#
# Note:
#============================================================
from headm import *
id, name, hm, sel, exp = tspload('hmall', 'id', 'name', 'hm', 'sel', 'exp')
outfile = r'd:\\temp\\hwauto.txt'
def dim2str(dim):
rets = ''
for id,num in enumerate(dim):
rets = rets + '%d-%d,'%(id+1,num)
return rets
with open(outfile, 'w') as f:
for i in range(len(id)):
ids = id[i]
names = name[i]
hws = dim2str(hm[i])
sels = dim2str(sel[i])
exps = dim2str(exp[i])
hwn = sum(hm[i])
seln = sum(sel[i])
expn = sum(exp[i])
print('%s %s %d %d %d %s %s %s'%(ids, names, hwn, seln, expn, hws, sels, exps), file=f)
# break
printf('\\a')
#------------------------------------------------------------
# END OF FILE : GENERATE.PY
#============================================================
■ 相关文献链接:
● 相关图表链接:
开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系以上是关于信号与系统2022春季学期作业统计处理的主要内容,如果未能解决你的问题,请参考以下文章