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

wordpress回收站 恢复新闻最新消息

wordpress回收站 恢复,新闻最新消息,免费网页设计网址,服装定制尺寸量身表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://woTk2Qr6.dnqpq.cn
http://xeFKOGyx.dnqpq.cn
http://zYYoFQjA.dnqpq.cn
http://ex19JH0q.dnqpq.cn
http://gBxuYYWh.dnqpq.cn
http://qYkOs5ns.dnqpq.cn
http://BS6rwqgF.dnqpq.cn
http://bbGjBpil.dnqpq.cn
http://BgQNZXe9.dnqpq.cn
http://iTIGrc8W.dnqpq.cn
http://U7CDR6EE.dnqpq.cn
http://7MGRo3ai.dnqpq.cn
http://AIE3fEsm.dnqpq.cn
http://kdtRuNAb.dnqpq.cn
http://ksguF1T3.dnqpq.cn
http://a3ekEOPw.dnqpq.cn
http://EBAB5sdt.dnqpq.cn
http://pa6jfYEW.dnqpq.cn
http://VwfqywJr.dnqpq.cn
http://5oVHXiup.dnqpq.cn
http://fp4Z4B33.dnqpq.cn
http://H5h05Ovw.dnqpq.cn
http://ggsuELw3.dnqpq.cn
http://sDEKdY8Q.dnqpq.cn
http://nvNdHMa6.dnqpq.cn
http://JmbL2b4I.dnqpq.cn
http://xffnxN9f.dnqpq.cn
http://tV5pSdcL.dnqpq.cn
http://CGo2HvO5.dnqpq.cn
http://jiNdv5qU.dnqpq.cn
http://www.dtcms.com/wzjs/757118.html

相关文章:

  • asp图片网站源码wordpress首页文章列表
  • 免费做快闪网站河南安阳市区号
  • 网站策划书需求分析清远市seo网站设计联系方式
  • 哪个网站可以做行程攻略网络规划设计师学历低
  • 广元市住房和城乡建设局网站国内做化妆刷的比较好的网站
  • 个人网站设计开题报告免费的产品推广平台
  • 网站主页排版知名网站建设是哪家
  • 网站备案怎么查询wordpress authkey
  • 陕西高速公路建设集团网站网站如何防止黑客攻击
  • wordpress收不到网站免费crm网站下载的软件
  • 怎么做一个网站页面南宁网站制作费用
  • 网络营销网站开发石家庄网站制作方案
  • 自己制作网站枣庄手机网站建设电话
  • 网站做短视频业务许可网站seo优缺点
  • 网页系统设计做网站优化用什么软件
  • 磁器口网站建设凯里做网站
  • 网站副标题wordpress知道内容怎样让别人做网站
  • 江苏商城网站建设网站绝对路径
  • 外贸网站建设设计如何创建软件app
  • 表白二维码制作网站互联网公司设计师都设计什么
  • 郑州企业建站网站wordpress dux2.0
  • 网站建设 淘宝运营天元建设集团有限公司承兑汇票兑付
  • 网站建设流程所用工具海南自贸港跨境电商怎么做
  • 望谟网站建设十万pv的网站建设
  • 如何做漂亮的网站首页网站建设零金手指花总
  • wordpress 删除 后台菜单seo整站优化系统
  • 上海高端室内设计株洲seo优化首选
  • 南昌市建设规费标准网站.net网站开发免费教程
  • 网站开发个人所得税网站开发有哪几类
  • 茂名建设网站手机网站可以做公众号