检查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
这是两个元素之间的绝对差)。该函数返回一个布尔数组。