Skip to main content
 首页 » 编程设计

python之查找 numpy float 组的交集

2025年05月04日12haluo1

如何找到两个 numpy float 数组的交集?:

a = np.arange(2, 3, 0.1) 
b = np.array([2.3, 2.4, 2.5]) 
out_data = np.intersect1d(a, b) 

结果是

out_data -> ndarray: [] 

请您参考如下方法:

由于 float 的工作方式,在您的示例中 a[3] 不是 2.3,而是 2.3000000000000003。这是因为 0.1 在 IEEE double float 中没有精确表示。 numpy 中的 intersect1d 方法实际上只适用于整数。要解决此问题,您应该实现自己的方法,该方法采用公差来确定两个 float 是否足够接近。