一.计算欧式距离

1,直接for循环

两个点集points1,points2,用dist来存储距离

points1=np.array([[1,2],[3,4]])
points2 = np.array([[5, 6],[7,8]])
dist = np.zeros(shape=[points1.shape[0],points2.shape[0]])
for i in range(points1.shape[0]):for j in range(points2.shape[0]):print(points1[i, :] - points2[j, :])

遍历两个点集的索引相减值

加上这句话

print(np.square(points1[i, :] - points2[j, :]))

print(np.sum(np.square(points1[i, :] - points2[j, :])))

print(np.sqrt(np.sum(np.square(points1[i, :] - points2[j, :]))))

points1=np.array([[1,2],[3,4]])
points2 = np.array([[5, 6],[7,8]])
dist = np.zeros(shape=[points1.shape[0],points2.shape[0]])
for i in range(points1.shape[0]):for j in range(points2.shape[0]):# print(points1[i, :] - points2[j, :])# print('======================')# print(np.square(points1[i, :] - points2[j, :]))# print('============================')# print(np.sum(np.square(points1[i, :] - points2[j, :])))# print(np.sqrt(np.sum(np.square(points1[i, :] - points2[j, :]))))dist[i, j] = np.sqrt(np.sum(np.square(points1[i, :] - points2[j, :])))
print(dist)

ind = np.unravel_index(np.argmax(dist), dist.shape)
print(ind)

返回索引值

2,矩阵操作求欧式距离

假设有两个三维向量集,用矩阵表示:

要求A,B这两个矩阵中的元素两两之间的欧式距离。

先求出

然后对分别求其中每个向量的模平方,并扩展为2*3矩阵:

然后:

将上面这个矩阵一开方,就得到了A,B矩阵各个元素两两之间的欧式距离。

import numpy as np
A=np.array([[1,2],[3,4]])
print('A=',A)
B=np.array([[5,6],[7,8]])
print('B=',B)BT=np.transpose(B)
print('BT=',BT)
A_BT=np.dot(A,BT)
print('A_BT=',A_BT)Asq=A**2
Asq=np.tile(np.sum(Asq,axis=1,keepdims=True),(1,A_BT.shape[1]))
print('Asq=',Asq)Bsq=BT**2
Bsq=np.tile(np.sum(Bsq,axis=0,keepdims=True),(A_BT.shape[0],1))
print('Bsq=',Bsq)print(Asq+Bsq-2*A_BT)
ED=np.sqrt(Asq+Bsq-2*A_BT)
print('ED=',ED)
ind=np.unravel_index(np.argmax(ED),ED.shape)
print(ind)
print(ED[ind[0],ind[1])

二.计算cos距离


import numpy as np
a = np.array([[1, 2],[3, 4]])
b = np.array([[1, 2],[3, 4],[1, 0]])
c = np.dot(a, np.transpose(b))
print('==c:', c)
norm_a = np.sqrt(np.sum(np.square(a), axis=-1))
print('==norm_a:', norm_a)
norm_b = np.sqrt(np.sum(np.square(b), axis=-1))
print('==norm_b:', norm_b)
base = np.dot(norm_a.reshape(norm_a.shape[0], 1), norm_b.reshape(1, norm_b.shape[0]))
print('base:', base)
print('===c/base:', c/base)

实现两个点集的欧式距离和cos距离和索引值寻找(含有两种解法,for循环和矩阵操作)相关推荐

  1. 寻找二叉树两个结点的最低共同父节点

    寻找二叉树两个结点的最低共同父节点 题目:二叉树的结点的定义如下: struct TreeNode {int m_nValue;TreeNode *m_pLeft;TreeNode *m_pRight ...

  2. 2个点马氏距离计算实例_数据分析基础:距离度量方式(欧式距离、马氏距离、曼哈顿距离)...

    数据分析中,为了评定数据之间的相似度,有很多不同的距离的计算方法,如欧氏距离,马氏距离等等. 欧氏距离 Euclidean distance:欧几里得距离,m维空间中两个点之间的真实距离 离差平方和, ...

  3. 曼哈顿距离,欧式距离,明式距离,切比雪夫距离,汉明距离

    根据我浅薄的知识,以及粗浅的语言,随意总结一下. 1.马氏距离(Manhattan distance),还见到过更加形象的,叫出租车距离的.具体贴一张图,应该就能明白. 上图摘自维基百科,红蓝黄皆为曼 ...

  4. [机器学习-概念] 什么是欧式距离、标准化欧式距离、马氏距离、余弦距离

    1.欧式距离(Euclidean Distance) 欧式距离源自N维欧氏空间中两点x1,x2x_1,x_2x1​,x2​间的距离公式: 2.标准化欧式距离(Standardized Euclidea ...

  5. 各种距离 欧式距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准欧氏距离、马氏距离、余弦距离、汉明距离、杰拉德距离、相关距离、信息熵...

    1. 欧氏距离(Euclidean Distance) 欧氏距离是最容易直观理解的距离度量方法,我们小学.初中和高中接触到的两个点在空间中的距离一般都是指欧氏距离. 二维平面上点a(x1,y1)与b( ...

  6. 什么是范数,及其对应的 “曼哈顿距离“、“欧式距离“、“闵氏距离“、“切比雪夫距离“

    什么是范数,及其对应的 "曼哈顿距离"."欧式距离"."闵氏距离"."切比雪夫距离" 一.什么是范数 二.欧式距离(对应 ...

  7. 欧式距离和曼哈顿距离的比较

    欧式距离 定义: 欧几里得度量(euclidean metric)(也称欧氏距离)是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离. 意义: 欧氏距离越小,两个向量的相似度越大:欧氏距离越 ...

  8. 曼哈顿距离,欧式距离,余弦距离

    1.曼哈顿距离 曼哈顿距离,叫出租车距离的.具见上图黄线,应该就能明白. 计算距离最简单的方法是曼哈顿距离.假设,先考虑二维情况,只有两个乐队 x 和 y,用户A的评价为(x1,y1),用户B的评价为 ...

  9. 欧式距离与曼哈顿距离的区别以及曼哈顿距离的应用

    欧氏距离就是我们最常用的两点之间的直线距离. 以二维空间为例,两点(x1,y1),(x2,y2)之间的欧式距离为: 曼哈顿距离则表示两个点在标准坐标系上的绝对轴距之和. 还是以二维空间为例,两点(x1 ...

最新文章

  1. ARM 寄存器 和 工作模式了解
  2. 漫画 | 程序员联名把产品经理告上县衙,并列了 8 大罪状
  3. mysql命令行安装报错_centos命令行安装mysql随机密码查看方法(遇到问题及其解决办法)...
  4. 集合框架源码分析三(实现类篇ArrayList,LinkedList,HashMap)
  5. eclipse开发android手机定位
  6. 主机大师linux,113资讯网(www.113p.cn)评测:护卫神·主机大师 (Linux版)
  7. Java应用全链路启动速度提升至15s,阿里云SAE能力再升级
  8. SAP Spartacus storefront.component.html 里的 SkipLinkComponent 如何创建的
  9. 树莓派的linux系统安装,树莓派安装Linux操作系统
  10. elipse调试linux内核,debug eclipse cdt + qemu虚拟机调试linux内核
  11. 春招 | 风控独角兽 数美科技 NLP、ASR算法工程师 - 25k-35k/月
  12. 系统辨识(五):系统辨识的最小二乘法基础
  13. 网易云课堂Python Flask框架全栈开发
  14. 信息学奥赛一本通1220
  15. 平面几何----斜射影定理的应用
  16. html5辨别音高,音理知识基础:音高和时值
  17. 男人心疼女人的13种方式
  18. sklearn代码11 1-熵
  19. torch.ones(),torch.add(),torch.zeros(),torch.squeeze()
  20. 虚拟机桥接模式下ping不通外网(baidu.com)

热门文章

  1. 打破情感分类准确率 80 分天花板!更加充分的知识图谱结合范式
  2. Spring Cloud构建微服务架构:Hystrix监控数据聚合【Dalston版】
  3. 生产Docker应用重启排查经历
  4. 领域应用 | 如何将知识图谱特征学习应用到推荐系统?
  5. linux不挂断运行python文件
  6. 详解TCP协议的服务特点以及连接建立与终止的过程(俗称三次握手四次挥手)
  7. Python+Selenium基础篇之2-打开和关闭火狐浏览器
  8. SpringCloud03 Ribbon知识点、 Feign知识点、利用RestTemplate+Ribbon调用远程服务提供的资源、利用feign调用远程服务提供的资源、熔断...
  9. 61二叉搜索树的第k个结点
  10. luoguP1463:反素数ant(打表心得☆)