Python Numpy:将浮点值与阈值进行比较
我在这里找到了如何比较浮动和相等: 以及其他类似的问题 但我找不到最好的方法来正确比较浮动和阈值(大于或小于) 示例:我们想检查浮点矩阵中的元素是否小于浮点阈值Python Numpy:将浮点值与阈值进行比较,python,numpy,floating-point,Python,Numpy,Floating Point,我在这里找到了如何比较浮动和相等: 以及其他类似的问题 但我找不到最好的方法来正确比较浮动和阈值(大于或小于) 示例:我们想检查浮点矩阵中的元素是否小于浮点阈值 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 < e
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
我找到的唯一解决方案是创建一个矢量化函数,并将矩阵的每个元素与treshold进行比较:首先确定它们不相等,然后与
进行比较。
感谢@MarkRansom。在大多数实际情况下,由于计算时收集到的小错误,无法进行精确比较 如果你想做正确的数值计算,你必须在计算结果的同时附上一个误差估计值,这是相当乏味的 (有一个名为“flint with a”的库,但我没有使用它,因此无法对此进行担保。它旨在为您的所有结果确定携带误差范围(比估计值更严格)
在任何情况下,您都必须将可能结果的列表从大、等、小更改为更大、可能更大、难以区分、可能更小、更小在大多数实际情况下,由于您在计算时收集到的误差很小,因此无法进行精确的比较 如果你想做正确的数值计算,你必须在计算结果的同时附上一个误差估计值,这是相当乏味的 (有一个名为“flint with a”的库,但我没有使用它,因此无法对此进行担保。它旨在为您的所有结果确定携带误差范围(比估计值更严格)
在任何情况下,您都必须将可能的结果列表从“更大”、“相等”、“更少”更改为“更大”、“可能更大”、“难以区分”、“可能更少”、“更少”请记住≤ b等于
而不是a>b
请记住a≤ b
等于而不是a>b
请讲清楚一点。你的意思是说你有一个浮点值,比如说threshold
,你想看看另一个值x
是否大于该值(或者可能小于该值)?如果x>阈值有什么问题?这就是你要找的吗?@MarkRansom谢谢。但在这个答案中,我只发现了如何比较相等的浮点数,而不是更大或更小的浮点数。也许我不够注意。一旦你确定它们不相等,那么
有什么问题吗?首先要检查它们是否相等,如果它们不相等,就只使用
。因此,您永远不会比较0.1<0.1
。请更清楚一点。你的意思是说你有一个浮点值,比如说threshold
,你想看看另一个值x
是否大于该值(或者可能小于该值)?如果x>阈值有什么问题?这就是你要找的吗?@MarkRansom谢谢。但在这个答案中,我只发现了如何比较相等的浮点数,而不是更大或更小的浮点数。也许我不够注意。一旦你确定它们不相等,那么
有什么问题吗?首先要检查它们是否相等,如果它们不相等,就只使用
。所以你永远不会比较0.1<0.1
。
[[ 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]]