当前位置: 首页 > news >正文

文登区城乡建设和规划局网站中英网站源码下载

文登区城乡建设和规划局网站,中英网站源码下载,企业培训计划方案,如何查询公司名称能不能注册numpy学习笔记11:计算两个数组的欧氏距离 欧氏距离是指在多维空间中两点之间的直线距离,计算公式是各分量差的平方和的平方根。也就是说,如果有两个点P和Q,坐标分别是(p1, p2, ..., pn)和(q1, q2, ..., qn),那么它们之…

numpy学习笔记11:计算两个数组的欧氏距离

欧氏距离是指在多维空间中两点之间的直线距离,计算公式是各分量差的平方和的平方根。也就是说,如果有两个点P和Q,坐标分别是(p1, p2, ..., pn)和(q1, q2, ..., qn),那么它们之间的欧氏距离d就是√[(p1-q1)² + (p2-q2)² + ... + (pn-qn)²]。

计算两个数组的欧氏距离的普通办法:

def distance_no_numpy(arr1, arr2):if len(arr1) != len(arr2):raise ValueError("两个数组的长度必须相同")squared_sum = 0for i in range(len(arr1)):squared_sum += (arr1[i] - arr2[i]) ** 2return squared_sum ** 0.5
# 示例数组
arr1 = [1, 2, 3]
arr2 = [5, 4, 3]# 计算欧氏距离
distance = distance_no_numpy(arr1, arr2)
print(f"不使用 NumPy 计算的欧氏距离: {distance}")

使用numpy计算两个数组的欧氏距离可以通过以下步骤实现

计算两个数组之间的欧氏距离的步骤是:

1. 计算两个数组的差值:diff = a - b

2. 对差值进行平方:squared_diff = np.square(diff)

3. 求和:sum_squared_diff = np.sum(squared_diff)

4. 取平方根:euclidean_distance = np.sqrt(sum_squared_diff)

计算两个数组的欧氏距离可以通过以下步骤实现,使用NumPy的高效向量化操作:


方法1:分步计算

  1. 计算差值:对应元素相减。

  2. 平方差值:逐元素平方。

  3. 求和:所有平方差值相加。

  4. 开平方:取总和的平方根。

import numpy as np# 示例数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])# 分步计算
diff = a - b          # 差值: [-3, -3, -3]
squared_diff = diff ** 2  # 平方: [9, 9, 9]
sum_diff = np.sum(squared_diff)  # 求和: 27
euclidean_distance = np.sqrt(sum_diff)  # 平方根: 5.196print("欧氏距离:", euclidean_distance)

方法2:使用 np.linalg.norm

直接计算两个数组差的 L2范数(即欧氏距离):

import numpy as npa = np.array([1, 2, 3])
b = np.array([4, 5, 6])distance = np.linalg.norm(a - b)
print("欧氏距离:", distance)  # 输出: 5.196

扩展场景

1. 多维数组计算

若输入为二维数组(如矩阵行向量),需展平为一维或按行处理:

a = np.array([[1, 2], [3, 4]])  # 形状 (2,2)
b = np.array([[5, 6], [7, 8]])# 展平后计算整体距离
distance = np.linalg.norm(a.flatten() - b.flatten())# 或逐行计算距离(每对行的距离)
row_distances = np.linalg.norm(a - b, axis=1)
2. 批量计算(矩阵间所有行组合)

使用广播计算两个矩阵各行之间的欧氏距离:

X = np.array([[1, 2], [3, 4]])  # 形状 (2,2)
Y = np.array([[5, 6], [7, 8]])  # 形状 (2,2)# 计算每对行的距离
distances = np.sqrt(np.sum((X[:, np.newaxis] - Y) ** 2, axis=2))

关键点总结

  • 公式:d=∑i=1n(ai−bi)2d=∑i=1n​(ai​−bi​)2​。

  • 效率:向量化操作(如 np.linalg.norm)比显式循环快数百倍。

  • 灵活性:适用于任意维度的数组(需形状一致或可广播)。

通过以上方法,可以高效计算任意形状数组的欧氏距离。

http://www.dtcms.com/a/580452.html

相关文章:

  • 怎么建网站赚钱好用的快速网站建设平台
  • 哪里网站建设p2p种子网站建设
  • 永嘉网站建设工作室wordpress对接卡盟
  • jsp购物网站开发 论文sem竞价推广代运营
  • 网站无法显示网页内容网站备案ip更换
  • 万网主机怎么上传网站能用网站做微信小程序
  • 免费建设手机网站品牌网站推广
  • 哈尔滨网站设计公司哪家更好在线代理网页服务器
  • 站长工具黄文章网站后台
  • 文库网站开发教程国外免实名域名
  • 做简历的什么客网站做字的网站
  • 做网站百度云网站设计高度
  • 网站建设花多少钱做电影网站赚钱的方法
  • 婚庆公司网站建设策划书.doc百度站长工具综合查询
  • 网站建设入固定资产工业产品设计结构图
  • 网站空间购买费用个人微信公众号怎么做微网站吗
  • 淘宝客网站开发教程公众号小程序二维码怎么生成
  • 短视频制作完成网站263云通信官方网站
  • 广东营销网站建设服务网站栏目设计
  • 做网站一般需要哪些文件夹企业集团网站源码
  • 贵阳网站上门备案业务中国室内设计联盟网官网
  • 深圳品牌网站建设公司哪家好域名注册申请
  • php网站免费模板wordpress淘宝客模版
  • 小男孩和女人做的网站临海网站制作费用如何记账
  • 外国做爰网站首页风格
  • 免费视频素材网站代码命名 网站
  • 一个企业网站多少钱钢结构平台
  • 免费网站app生成软件网站降权怎么做
  • 旅行社做网站中国万网官网首页
  • 装饰公司怎么做网站可以做自己的单机网站