前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >numpy 计算路线距离

numpy 计算路线距离

作者头像
演化计算与人工智能
发布2020-08-14 15:12:01
6840
发布2020-08-14 15:12:01
举报

“参考文献enumerate 遍历数组[1]np.diff 函数[2]numpy 适用数组作为索引[3]

标记路线上的点

X={X1,X2,X3,X4,X5,X6}
Xn=(x_n,y_n)
代码语言:javascript
复制
import numpy as np
# 适用二维数组表示地图上的六个点
# city_position.shape=(6,2) 表示旅行商经过的路线
city_position=np.array([[1,18],[6,23],[8,64],[7,49],[49,48],[12,36]])

存储路线上的点

代码语言:javascript
复制
point_x=np.ones((6,1))
point_y=np.ones((6,1))
point_x=city_position[:,0] # 存放路线的横坐标
point_y=city_position[:,1] # 存放路线的纵坐标
# print(point_x)
# print(point_y)
# [ 1  6  8  7 49 12]
# [18 23 64 49 48 36]

依次计算路线上点之间的距离

total_distance=\sum_{n=2}^{n}\sqrt{(x_n-x_{n-1})^2+(y_n-y_{n-1})^2}
代码语言:javascript
复制
# 计算路线的距离
total_distance=np.sum(np.sqrt(np.square(np.diff(point_x)) + np.square(np.diff(point_y))))
print("total_distance",total_distance)
print("np.diff(point_x)",np.diff(point_x))
print("np.diff(point_y)",np.diff(point_y))
# total_distance 144.062319447
# np.diff(point_x) [  5   2  -1  42 -37]
# np.diff(point_y) [  5  41 -15  -1 -12]
\sqrt{(5^2+5^2)}+\sqrt{(2^2+41^2)}+\sqrt{((-1)^2+(-15)^2)}+\sqrt{(42^2+(-1)^2)}+\sqrt{((-37)^2+(-12)^2)}

参考资料

[1]enumerate遍历数组: https://blog.csdn.net/u013555719/article/details/83578489

[2]np.diff函数: https://blog.csdn.net/u013555719/article/details/83586177

[3]numpy适用数组作为索引: https://blog.csdn.net/u013555719/article/details/83582679

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DrawSky 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 标记路线上的点
  • 存储路线上的点
  • 依次计算路线上点之间的距离
    • 参考资料
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档