欧氏距离比较相似度的python实现
# -*- coding: utf-8 -*-
import xlrd
import xlwt
import unicodedataworkbook = xlrd.open_workbook(r'C:\Users\wangqiqi\Desktop\classify.xlsx')
#读取sheet1工作簿获取待分类数据
def read_sheet1():sheet1 = workbook.sheet_by_index(0)r1=sheet1.nrowsvl1=[]for r in range(r1):vdic1={}#if sheet1.row(r)[3].value:vdic1['mile']= sheet1.row(r)[3].valuevdic1['num']=sheet1.row(r)[5].valuevdic1['weight']=sheet1.row(r)[6].valuevdic1['age']=sheet1.row(r)[7].valuevl1.append(vdic1)return vl1
#读取sheet2工作簿获取已分类数据
def read_sheet2():sheet2 = workbook.sheet_by_index(1)r2=sheet2.nrowsvl2=[]for r in range(r2):vdic2={}#if sheet2.row(r)[3].value:vdic2['mile']=sheet2.row(r)[3].valuevdic2['num']=sheet2.row(r)[5].valuevdic2['weight']=sheet2.row(r)[6].valuevdic2['age']=sheet2.row(r)[7].valuevl2.append(vdic2)return vl2
#设置excel输出样式
def set_style(name,height,bold=False):style = xlwt.XFStyle() # 初始化样式font = xlwt.Font() # 为样式创建字体font.name = name # 'Times New Roman'font.bold = boldfont.color_index = 4font.height = height# borders= xlwt.Borders()# borders.left= 6# borders.right= 6# borders.top= 6# borders.bottom= 6style.font = font# style.borders = borderreturn style
#输出结果到excel
def write_excel(n,mol):f = xlwt.Workbook()sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True) #创建sheetrow0 = [u'sheet1所在行',u'sheet2所在行',u'min_distance']for i in range(0,len(row0)):sheet1.write(0,i,row0[i],set_style('Times New Roman',220,True))for i in range(1,86):sheet1.write(i,0,i,set_style('Times New Roman',220,True))sheet1.write(i,1,n[i-1]+1,set_style('Times New Roman',220,True))sheet1.write(i,2,mol[i-1],set_style('Times New Roman',220,True))f.save('C:\Users\wangqiqi\Desktop\distancs.xls') #保存文件if __name__ == '__main__':r=0d=0l1=read_sheet1()print len(l1)l2=read_sheet2()print len(l2)mul=[]kl=[]i=0for i in range(len(l1)):ol=[]for j in range(len(l2)):sum=(l1[i]['mile']-l2[j]['mile'] )**2+(l1[i]['num']-l2[j]['num'])**2+(l1[i]['weight'] -l2[j]['weight'] )**2+(l1[i]['age'] -l2[j]['age'] )**2 #欧氏距离计算公式ol.append(sum**0.5) #print min(ol)mol=min(ol)mul.append(mol)for k in range(len(ol)):if ol[k]==mol:i+=1kl.append(k)print iwrite_excel(kl,mul)
欧氏距离比较相似度的python实现相关推荐
- 计算图像相似度——《Python也可以》之一
计算图像相似度--<Python也可以>之一 声明:本文最初发表于赖勇浩(恋花蝶)的博客http://blog.csdn.net/lanphaday,如蒙转载,敬请确保全文完整,未经同意, ...
- 图像融合评价指标:CC(Correlation Coefficient)以及余弦相关度、欧氏距离和皮尔逊相关度的通俗解释
相关系数,在概率论中给出的就是: 这里的cov(X,Y)是X,Y的协方差,也就是X和Y分别减去各自的均值(相当于是将X和Y的均值变为0),然后做点积(对应元素相乘后求和),再除以长度N或尺寸M*N.回 ...
- 计算图像相似度——《Python也可以》之一(转)
声明:本文最初发表于赖勇浩(恋花蝶)的博客http://blog.csdn.net/lanphaday,如蒙转载,敬请确保全文完整,未经同意,不得用于商业用途. 关于<Python也可以> ...
- 文本相似度计算python lda_如何识别“答非所问”?使用gensim进行文本相似度计算...
在文本处理中,比如商品评论挖掘,有时需要了解每个评论分别和商品的描述之间的相似度,以此衡量评论的客观性. 评论和商品描述的相似度越高,说明评论的用语比较官方,不带太多感情色彩,比较注重描述商品的属性和 ...
- 欧式距离、曼哈顿距离、余弦相似度(python代码)
欧式距离/欧几里得度量(Euclidean Distance) 欧氏距离就是两点之间最短的直线距离. (1)二维空间里A.B两点间的欧式距离: SAB=(xA−xB)2+(yA−yB)2S_{AB}= ...
- 文本相似度计算 python去停用词_python专业方向 | 文本相似度计算
欢迎关注我们的微信公众号"人工智能LeadAI"(ID:atleadai)步骤 1.分词.去停用词 2.词袋模型向量化文本 3.TF-IDF模型向量化文本 4.LSI模型向量化文本 ...
- 终于从树堆里爬出来了——堆排序(基于二叉树)基本思想、步骤、复杂度及python代码,欢迎交流
欢迎关注,敬请点赞! 树堆逃生记 一.动图演示 二.思路分析 1. 相关概念 2. 基本思想 3. 步骤 [步骤一] 构造初始堆 [步骤二] 将堆顶元素与末尾元素进行交换,使末尾元素最大. [步骤三] ...
- 模块度计算python代码_LPA算法C++实现及模块度计算
前言 这学期开始看社团检测的东西,了解了一些经典算法.比如GN算法,BGLL算法(又叫Louvain, 因为该算法是作者在Louvain大学时提出的),LPA算法,等等. 我先看的LPA(毕竟算法思想 ...
- python图像相似度识别_一个用SIFT特征比较图像相似度的python小程序
1 问题描述 把一堆图片按照与给出的一张图片的相似度进行排序 2 程序 可以从图片中提取SIFT特征,对两幅图片的SIFT特征进行匹配并按照一定条件删选就能得到两幅图片的匹配点个数,匹配点个数越多,相 ...
最新文章
- 第十二课:小信号分析 (二)
- mysql 内连接查询慢_MySQL慢查询有2个内连接
- Angular项目中,基于esriLoader+iframe实现不同页面调用3.x与4.x ArcGIS JS API
- MySQL(10)数据库实现高可用架构之MHA
- react生命周期函数_如何优雅的消灭掉react生命周期函数
- 双11特刊|十年磨一剑,云原生多模数据库Lindorm 2021双11总结
- 5 句话,带你看准区块链和分布式账本最新趋势!
- smartbi v7 Linux,图表传值?花式互动?Smartbi V7.0.1新特性有没有撩到你?
- [深度学习] 神经网络中的 batch 和 epoch
- NLP是百度的核心技术之一
- 请问smartadmin中如何只用其treeview 组件?
- C# Udp测试工具开发
- fft与fftshift的维度
- Windows 10配置远程开机
- 海马体记忆训练:让你拥有超常记忆力
- gb 28181的20位编码简介
- python Excel表序号(leetcode)
- JAVA Applet版的连连看游戏
- python/sympy计算施密特正交化向量
- 前端学习笔记之流程控制语句和数组(六)