吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 381|回复: 0
收起左侧

[求助] 求解一个numpy算法

[复制链接]
xiaosuobjsd 发表于 2022-8-1 16:52
本帖最后由 xiaosuobjsd 于 2022-8-1 16:54 编辑

如题:
a = [[1, 2, 3], [4, 5, 6]]
b = [[11, 12, 13], [14, 15, 16], [17, 18, 19]]
a和b是三维空间内的几个点的数组,求a各点到b上各点的最近距离
我用2个循环嵌套+欧氏距离公式然后取最小值:
for i in a:
    for j in b:
         x = a[0] - b[0]
         y = a[1] - b[1]
         z = a[2] - b[2]
         然后 L =  x^2 + y^2 + z^2 再开方
         append(L)
   L取最小值
   print "L"
得到的答案是:
('点1距离另外三个点的最近距离为:', 17.32)
('点2距离另外三个点的最近距离为:', 12.12)

问题是,如何只用numpy函数快速实现?举例:
a = [
[1,2,3],
[1,2,3],
[1,2,3],
[4,5,6],
[4,5,6],
[4,5,6]
]
b = [
[11,12,13],
[14,15,16],
[17,18,19],
[11,12,13],
[14,15,16],
[17,18,19]
]
这样就可以用a-b快速得到和欧氏距离有关的数据
(其实原题是a有数千个数据,b也有数千个数据,用for循环会消耗20秒时间来计算,但是用numpy可以在1秒内完成,所以求解)

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 09:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表