使用list生成dict(可指定单条长度和数据类型,splen为4即为list中每4行组成dict中一条)

def list2dict(srclist,splen,datatype):# datatype: 0-str 1-int 2-float
dstdict={}
for i in range(0,int(len(srclist)/splen)):
dstdict[srclist[splen*i]]=[]
for j in range(1,splen):
if datatype==0:
dstdict[srclist[splen*i]].append(srclist[splen*i+j])
elif datatype==1:
dstdict[srclist[splen*i]].append(int(srclist[splen*i+j]))
elif datatype==2:
dstdict[srclist[splen*i]].append(float(srclist[splen*i+j]))
else:
print 'please choose the datatype'
return False
return dstdict

计算两个list的距离(注意不能用numpy的linalg.norm,因为用numpy的linalg.norm的话如果两个list相等就会报错(因为求了0向量的范数))

def cal_list_dist(srclist1,srclist2):
if len(srclist1)!=len(srclist2):
print 'error in cal_list_dict, len not equal!'
return False
listerror=0
for i in range(0,len(srclist1)):
listerror+=pow(srclist1[i]-srclist2[i],2)
return pow(listerror,0.5)

比较按行存的label的误差

例如可以比较这样的list中名称相同的训练样本的误差:

将黄色处生成dict的间隔改为3,则可以比较这样的list

import sys

def list2dict(srclist,splen,datatype):# datatype: 0-str 1-int 2-float
dstdict={}
for i in range(0,int(len(srclist)/splen)):
dstdict[srclist[splen*i]]=[]
for j in range(1,splen):
if datatype==0:
dstdict[srclist[splen*i]].append(srclist[splen*i+j])
elif datatype==1:
dstdict[srclist[splen*i]].append(int(srclist[splen*i+j]))
elif datatype==2:
dstdict[srclist[splen*i]].append(float(srclist[splen*i+j]))
else:
print 'please choose the datatype'
return False
return dstdict def cal_list_dist(srclist1,srclist2):
if len(srclist1)!=len(srclist2):
print 'error in cal_list_dict, len not equal!'
return False
listerror=0
for i in range(0,len(srclist1)):
listerror+=pow(srclist1[i]-srclist2[i],2)
return pow(listerror,0.5) p_name=sys.argv[1] with open('./10_10_662_withcam0/'+p_name) as f:
withcam0_list=f.read().splitlines() with open('./10_10_662_nocam0/'+p_name) as f:
nocam0_list=f.read().splitlines() withcam0_dict=list2dict(withcam0_list,4,2) nocam0_dict=list2dict(nocam0_list,4,2) sumerror=0
sumcount=0
for elem in withcam0_dict:
if elem in nocam0_dict:
sumerror+=cal_list_dist(withcam0_dict[elem],nocam0_dict[elem])
sumcount+=1
print sumerror/sumcount

【python】常用函数的更多相关文章

  1. Python常用函数记录

    Python常用函数/方法记录 一. Python的random模块: 导入模块: import random 1. random()方法: 如上如可知该函数返回一个[0,1)(左闭右开)的一个随机的 ...

  2. Python常用函数、方法、模块记录

    常用函数: 1.pow():乘方 2.abs():绝对值 3.round():四舍五入 4.int():转换为整数 5.input():键盘输入(会根据用户的输入来做类型的转换) raw_input( ...

  3. python常用函数年初大总结

    1.常用内置函数:(不用import就可以直接使用) help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像函数一样调用 repr(obj) 得到o ...

  4. python常用函数总结

    原文地址https://www.cnblogs.com/nice107/p/8118876.html 我们在学习python的时候,接触最多的往往则是那些函数,对于python函数,在这里为大家总结归 ...

  5. 超级干货,python常用函数大总结

    我们在学习python的时候,接触最多的往往则是那些函数,对于python函数,在这里为大家总结归纳了这些,如果有缺漏,还请及时留言指正哦! 话不多说,干货来袭! 1.常用内置函数:(不用import ...

  6. python常用函数库收集。

    学习过Python都知道python中有很多库.python本身就是万能胶水,众多强大的库/模块正是它的优势. 收集一些Python常用的函数库,方便大家选择要学习的库,也方便自己学习收集,熟悉运用好 ...

  7. python常用函数拾零

    Python常用内置函数总结: 整理过程中参考了runoob网站中python内置函数的相关知识点,特此鸣谢!! 原文地址:http://www.runoob.com/python/python-bu ...

  8. python 常用函数集合

    1.常用函数     round() :  四舍五入         参数1:要处理的小数         参数2:可选,如果不加,就是不要小数,如果加,就是保留几位小数     abs() :绝对值 ...

  9. Python | Python常用函数、方法示例总结(API)

    目录 前言 1. 运算相关 2. Sring与数字 3. 列表相关 4. 集合相关 5. 序列化类型 6. 字典相关 7. 输入输出 8. 文件相关 9. json模块 10. unittest测试模 ...

  10. python常用函数及模块

    原文来源于博客园和CSDN 1.计算函数 abs()--取绝对值 max()--取序列最大值,包括列表.元组 min()--取序列最小值 len()--取长度 divmod(a,b)---取a//b除 ...

随机推荐

  1. C语言 · 数组查找及替换

    算法训练 数组查找及替换   时间限制:1.0s   内存限制:512.0MB      问题描述 给定某整数数组和某一整数b.要求删除数组中可以被b整除的所有元素,同时将该数组各元素按从小到大排序. ...

  2. [Application]Ctrl+C终止程序代码

    代码如下: #include <stdio.h> #include <stdlib.h> #include <iostream> #include <sign ...

  3. [uboot]uboot如何引导系统

    转自:http://bbs.elecfans.com/jishu_455028_1_1.html 如6410的bootcmd和bootargs默认存在于uboot1.1.6/include/confi ...

  4. JavaScript实现网页安全登录(转)

    现在很多商业网站的用户登录都是明码传输的,而一般用户又习惯于所有帐号使用相同的密码来保存,甚至很多人使用的密码和自己的银行帐号都一样哦!所 以嘛还是有一定的安全隐患的,YAHOO的免费邮箱登录使用了M ...

  5. IoC就是IoC,不是什么技术,与GoF一样,是一种设计模式。

    IoC就是IoC,不是什么技术,与GoF一样,是一种设计模式. InterfaceDrivenDesign接口驱动,接口驱动有很多好处,可以提供不同灵活的子类实现,增加代码稳定和健壮性等等,但是接口一 ...

  6. 如何创建Cookie? (选择1项)

    如何创建Cookie? (选择1项) A. 使用new Cookie语句 B. 调用response.addCookie方法 C. 使用Cookie的setMaxAge方法 D. setCookie方 ...

  7. CI -- $this->load->library()详解

    我第一次加载失败,原来是文件名和类名不同的原因,先总结关于CI加载你自己的类文件注意事项: 1.第三方加载文件应放在application/libraries文件下 2.文件名和类名应该相同,并且首字 ...

  8. noip2014滚粗记

    滚粗了..伤心. day0:和baba一起去,但是整天都是下雨啊好不爽,鞋子都湿了啊好不爽,注定是要滚粗?在火车站等了1h后上动车走人...在此期间我还天真的认为火车站的wifi可以被我给破解然后上网 ...

  9. No JSON object could be decoded

    json中的true 不能写成True,否则不能被解析.

  10. 事务基础知识-->Spring事务管理

    Spring虽然提供了灵活方便的事务管理功能,但这些功能都是基于底层数据库本身的事务处理机制工作的.要深入了解Spring的事务管理和配置,有必要先对数据库事务的基础知识进行学习. 何为数据库事务 “ ...