我在这里找到了如何比较浮点数:
Compare `float` and `float64` in python
Working with floating point NumPy arrays for comparison and related operations
以及其他类似问题。
但我无法找到正确比较浮点数与阈值(更大或更小)的最佳方法。
示例:我们要检查float matrix中的元素是否小于浮点阈值。
eps = 0.1
xx = np.array([[1,2,3], [4,5,6], [7,8,9]])
yy = np.array([[1.1,2.1,3.1], [4.1,5.1,6.1], [7.1,8.2,9.3]])
dif = np.absolute(xx - yy)
print dif
print dif < eps
打印:
[[ 0.1 0.1 0.1]
[ 0.1 0.1 0.1]
[ 0.1 0.2 0.3]]
[[False False False]
[ True True True]
[ True False False]]
我找到的唯一解决方案是创建一个矢量化函数,并将矩阵的每个元素与阈值进行比较:首先确定它们不相等,然后与<
或>
进行比较。
感谢@MarkRansom。
答案 0 :(得分:0)
在大多数实际情况下,由于您在进行计算时收集的错误很少,因此无法进行精确比较。
如果你想做适当的数字,你将不得不进行错误估计以及所有结果,这是非常繁琐的。
(有一个名为flint的库python interface,但我没有使用它,所以无法保证它。它的目的是为你做所有结果的携带错误界限(比估计更严格) 。)
在任何情况下,您都必须将可能结果的列表从更大,相等,更少更改为更大,更大,更难以区分,可能更少,更少
答案 1 :(得分:0)
请注意,a ≤ b
等于not a > b
。