xiaosuobjsd 发表于 2022-8-1 16:52

求解一个numpy算法

本帖最后由 xiaosuobjsd 于 2022-8-1 16:54 编辑

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

问题是,如何只用numpy函数快速实现?举例:
a = [
,
,
,
,
,

]
b = [
,
,
,
,
,

]
这样就可以用a-b快速得到和欧氏距离有关的数据
(其实原题是a有数千个数据,b也有数千个数据,用for循环会消耗20秒时间来计算,但是用numpy可以在1秒内完成,所以求解)
页: [1]
查看完整版本: 求解一个numpy算法