Python 将numpy数组与np.allclose()进行比较
我是Python新手。我无法理解以下代码的行为(我正在尝试为某些内容创建单元测试): 此代码打印:Python 将numpy数组与np.allclose()进行比较,python,python-3.x,numpy,Python,Python 3.x,Numpy,我是Python新手。我无法理解以下代码的行为(我正在尝试为某些内容创建单元测试): 此代码打印: [0.5 0.88079708] [0.5 0.88079708] 0.8807970779778823 0.88079708 False True 为什么当我打印数组时,它们的值是相等的,但当我打印最后一项时,它们是不同的?如果值实际上不同,为什么等于2为真?如果值相同,为什么等于1为False “为什么当我打印数组时,它们的值是相等的,但之后我打印 他们的最后一项
[0.5 0.88079708]
[0.5 0.88079708]
0.8807970779778823
0.88079708
False
True
为什么当我打印数组时,它们的值是相等的,但当我打印最后一项时,它们是不同的?如果值实际上不同,为什么等于2
为真
?如果值相同,为什么等于1
为False
“为什么当我打印数组时,它们的值是相等的,但之后我打印
他们的最后一项不同吗?”
这是因为numpy.ndarray
中有一个
“如果值实际上不同,为什么_equal2为真?”
根据的文档,它在元素方面进行比较:
绝对(a-b)好的,谢谢。当我将
atol
添加到调用中时,它起作用:是\u equal2=np.allclose(result,expected\u result,rtol=0.00000000000000000000001,atol=0)
。我忽略了一个事实,atol
有一个默认值。
[0.5 0.88079708]
[0.5 0.88079708]
0.8807970779778823
0.88079708
False
True