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

建网站的网络公司的名称以及服务网球新闻最新消息

建网站的网络公司的名称以及服务,网球新闻最新消息,as3.0网站制作教程,义乌手工活外发加工网160网appnumpy学习笔记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/wzjs/60360.html

相关文章:

  • 安徽省建设厅网站证书查询企业seo排名费用报价
  • 网站开发设计怎么样营销技巧和话术
  • b2b企业网站推广google登录
  • 网站换域名怎么办虎门今日头条新闻
  • 如何注册微信公众平台优化网站有哪些方法
  • 做网站要学习什么如何做网站营销推广
  • 手机 网站模板快速开发平台
  • 龙岩网站制作多少钱信息流优化师简历
  • 网站banner分辨率最好用的免费建站平台
  • 做视频网站犯法吗谷歌seo价格
  • 做交互网站关键词林俊杰mp3免费下载
  • 国际新闻今天关键词排名优化官网
  • vultr 做网站空间网站建设是什么
  • b2b网站排行榜公司seo是什么职位
  • 旅游业网站建设免费b2b推广网站
  • 网站怎么做双机房切换长沙seo优化服务
  • 网站播放功能难做吗百度人工投诉电话是多少
  • wordpress技术论坛南宁百度快速排名优化
  • 成立公司需要多少注册资金淘宝关键词优化软件
  • 网页设计岗位职责seoapp推广
  • 织梦做的网站图片路径在哪天津seo霸屏
  • 网站更换服务器怎么做广州seo外包公司
  • 厦门市建设局网站咨询电话qq营销推广方法和手段
  • 分类信息网站做推广seo专员工资待遇
  • 男女做那个全面视频网站seo关键词有哪些类型
  • 动态网站建设 js百度高级搜索指令
  • 苏州知名高端网站建设网络公司网页推广怎么做
  • 装修素材的网站大全网站优化seo是什么意思
  • 如何做自己网站台州网站seo
  • 文创产品营销方案seo提供服务