np.linalg.norm和如何处理机器epsilon

问题描述 投票:0回答:2

我有这个相当简单的问题。我想用这段代码用numpy计算欧几里得距离:

a= np.array([1,2,3])
b= np.array([2,3,4])

print((np.linalg.norm(a-b))**2)

这将产生2.9999999999999996,但是答案应该是3。我该如何实现?

谢谢

python numpy euclidean-distance epsilon
2个回答
1
投票

通常,您可以使用np.isclose比较浮点值。


0
投票

您可以使用round()函数

a= np.array([1,2,3])
b= np.array([2,3,4])

print((np.linalg.norm(round(a-b))**2))
© www.soinside.com 2019 - 2024. All rights reserved.