我需要检查给定的 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/