求解一个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]