如何找到两个 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 是否足够接近。
关于python - 查找 numpy float 组的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32513424/