python - 检查 float 是否接近存储在数组中的任何 float

标签 python arrays numpy floating-point

我需要检查给定的 float 是否在给定的公差范围内接近 float 数组中的任何 float

import numpy as np

# My float
a = 0.27
# The tolerance
t = 0.01
# Array of floats
arr_f = np.arange(0.05, 0.75, 0.008)

有没有简单的方法来做到这一点?类似于 if a in arr_f: 但是允许差异有一些容差吗?


添加

“允许容忍”是指以下含义:

for i in arr_f:
    if abs(a - i) <= t:
        print 'float a is in arr_f within tolerance t'
        break

最佳答案

如何使用 np.isclose

>>> np.isclose(arr_f, a, atol=0.01).any()
True

np.isclose 按元素比较两个对象以查看值是否在给定的公差范围内(此处由关键字参数 atol 指定,这是两者之间的绝对差异两个元素)。该函数返回一个 bool 数组。

关于python - 检查 float 是否接近存储在数组中的任何 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25962838/

相关文章:

Sql查询获取json结果中没有列名的数组

c - 直方图,频率的计算

python - 如何将numpy数组中的元素随机设置为0

java - 如何修改一个字段的一个公共(public)字段...如link.next.next.next(.next*n) n次

python - numpy 数组更精确

python - 如何从 Pandas 数据框中获取二维 numpy 数组? - 错误的形状

python - Holoviz/Param/Panel : is it possible to change, 隐藏或删除保存参数化类参数的参数面板的标题?

python - 无法弄清楚如何安装Python包decode.py

python - MySQL、fetchone 和 LIMIT

python - 如何仅提取图像中被屏蔽的像素? (Python numpy 数组运算)