人脸识别测试数据分析

一个人脸识别研究小组对若干名学生做了人脸识别的测试,将测试结果写入到一个文件 dir_50.txt 中,每一行是一张照片的识别结果+"_照片编号"+".jpg"的字符串组合,示例如下:

复制代码
['1709020621', '0']_116.jpg
['1709020621']_115.jpg
['1770603107', '1770603105', '0', '0']_1273.jpg

其中,识别结果是一个列表形式的字符串,方括号中是识别出的学生学号字符串,如果识别出了照片中的多个人,就会包含多个学号字符串;如果检测到了一个人脸但没有识别出学号,则以字符串'0'表示;测试过程中,一个学生可能被抓拍到多张照片中,所以学生的学号会出现在多行信息中。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬

使用字典和列表进行数据分析,获取实际参加测试的学生人数和人均被检测次数。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬

(1)读入 dir_50.txt 文件的内容,处理每一行信息。将其中的学号内容以列表形式保存,丢掉'0'的字串;照片编号作为字典的关键字,学号列表作为字典的值。转换后示例如下:

复制代码
'116':[1709020621]
'115':[1709020621]
'117':[1709020621]
'1273':[1770603107,1770603105]

(2)将该字典中的学号提取出来,构造另一个字典,以学号作为字典的关键字,累计学号出现的次数,将累计值作为字典的值。格式示例如下:

复制代码
'1709020621':3
'1770603107':1
'1770603105':1

(3)累计字典中关键字的个数,即为实际参加测试的学生人数;累加每个关键字对应的值,即为所有学号测试次数;所有学号测试次数与实际测试人数之比,即为人均被测次数。将实际参加测试人数和人均被测次数显示输出在屏幕上。

示例1:

输入: 从文件dir_50.txt读入

输出: "实际参加测试的人数是:11"

"人均被测次数是:2.5"

解答:

方法一

复制代码
f=open('dir_50.txt','r',encoding='utf-8')
lines=f.readlines()
f.close()
d={}
for line in lines:
    line=line.split('_')
    k=line[1][:-5]
    v=[]
    for c in eval(line[0]):
        if c !='0':
            v.append(c)
    d[k]=v #第一问结束
d1={}
for i in d:
    for j in d[i]:
        d1[j]=d1.get(j,0)+1  #第二问结束
s=0
for t in d1:
    s=s+int(d1[t])
print("实际参加测试的人数是:{}".format(len(d1)))
print("人均被测次数是:{:.1f}".format(s/len(d1)))  #第三问结束

方法二:

复制代码
f=open('dir_50.txt','r',encoding='utf-8')
lines=f.readlines()
f.close()
d={}
for line in lines:
    line=line.split('_')
    k=line[1][:-5]
    v=[]
    for c in eval(line[0]):
        if c !='0':
            v.append(c)
    d[k]=v #第一问结束
d1={}
for i in d:
    for j in d[i]:
        d1[j]=d1.get(j,0)+1  #第二问结束
s=0
for t in d1:
    s=s+int(d1[t])
print("实际参加测试的人数是:{}".format(len(d1)))
print("人均被测次数是:{:.1f}".format(s/len(d1)))  #第三问结束
相关推荐
SweetCode1 分钟前
裴蜀定理:整数解的奥秘
数据结构·python·线性代数·算法·机器学习
weixin_307779134 分钟前
使用C#实现从Hive的CREATE TABLE语句中提取分区字段名和数据类型
开发语言·数据仓库·hive·c#
Xiaok101813 分钟前
解决 Hugging Face SentenceTransformer 下载失败的完整指南:ProxyError、SSLError与手动下载方案
开发语言·神经网络·php
程序员Linc14 分钟前
写给新人的深度学习扫盲贴:向量与矩阵
人工智能·深度学习·矩阵·向量
CryptoPP14 分钟前
springboot 对接马来西亚数据源API等多个国家的数据源
spring boot·后端·python·金融·区块链
ゞ 正在缓冲99%…14 分钟前
leetcode76.最小覆盖子串
java·算法·leetcode·字符串·双指针·滑动窗口
绿草在线15 分钟前
Mock.js虚拟接口
开发语言·javascript·ecmascript
xuanjiong15 分钟前
纯个人整理,蓝桥杯使用的算法模板day2(0-1背包问题),手打个人理解注释,超全面,且均已验证成功(附带详细手写“模拟流程图”,全网首个
算法·蓝桥杯·动态规划
xcLeigh22 分钟前
OpenCV从零开始:30天掌握图像处理基础
图像处理·人工智能·python·opencv
大乔乔布斯22 分钟前
AttributeError: module ‘smtplib‘ has no attribute ‘SMTP_SSL‘ 解决方法
python·bash·ssl