使用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. Windows Phone Unit Test 环境搭建

    单元测试对工程质量带来的作用就不详细说明了,本文只讨论如何在WP开发环境下搭建测试工程     历史 从WP7时代官方是不支持UnitTest工程的,因此需要采用WPToolkitTest这个工程来实 ...

  2. cocos2dx集成友盟社会化分享图片崩溃问题

    本人不懂oc,一步一步按照友盟的文档做,好不容易把分享做好了,结果在 分享图片的时候宕掉了.各种测试,搞了一下午终于搞定了. 如下是友盟文档的做法,错误就在[UIImage imageNamed:@& ...

  3. lua字符串对齐函数

    最近要用到字符串对齐,开始只是一部分字符串,就直接加空格了,后来发现有很多, 于是写了个字符串对齐的函数. --功能:分割字符串 --参数:带分割字符串,分隔符 --返回:字符串表 function ...

  4. man page用法

    通过man man可查看man page的具体用法. 1   Executable programs or shell commands       2   System calls (functio ...

  5. Linux开机启动文件rc.local无法执行怎么办?

    rc.local是Linux系统中的一个重要的开机启动文件,每次开机都要执行这个文件.但是有一些用户的Linux系统无法执行这个文件,并导致了一系列的问题.遇到这个问题我们应该怎么办呢? 在Linux ...

  6. tensorflow 保存训练模型ckpt 查看ckpt文件中的变量名和对应值

    TensorFlow 模型保存与恢复 一个快速完整的教程,以保存和恢复Tensorflow模型. 在本教程中,我将会解释: TensorFlow模型是什么样的? 如何保存TensorFlow模型? 如 ...

  7. FormData异步上传

    1.代码片段一: ajaxUpload: function () { var url = this.$avatarForm.attr('action'), data = new FormData(th ...

  8. <mvc:annotation-driven />注解详解

    <mvc:annotation-driven /> 是一种简写形式,完全可以手动配置替代这种简写形式,简写形式可以让初学都快速应用默认配置方案.<mvc:annotation-dri ...

  9. Ubuntu执行su后输入密码结果认证失败--解决办法:sudo passwd修改命令

  10. JavaScript作用域原理——作用域根据函数划分

    一.一个for实例 <p id="scope3" style="color:red"></p> var pscope3 = docume ...