python - 查找 numpy float 组的交集

标签 python numpy

如何找到两个 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/

相关文章:

python - 未使用 FLASK_APP 和 App Factory 加载 Flask 配置

python - 科学图像显示python

python - 使用 numpy 创建特定数组

python - 如何循环 python 读取一组 HTML 文件并转储到 JSON

Python 在 for 循环期间卡住

python - 在 python 中映射 csv

python - 将每个实例的多类转换为每个实例的类 - Python

python - 如何在 tensorflow RNN 中使用 numpy 数组输入

python - 在 python 中构建对象列表以进行矢量化 : Can a list of structures(objects) be vectorized, 或者需要显式数组

python - numpy 调用类方法的行为名称(如果定义)?