2024-06-01 01:41:19 发布
网友
实现比较两个numpy浮点数组的unittest的最佳方法是什么。
我试过unittest.assertEqual(),但对float数组无效,因为float从来都不是100%相等的。我不能使用assertAlmostEqual,因为它测试圆(浮点数)的相等性。。。
有人做过这样的工作吗
self.assertFloatArrayEqual(array1, array2, msg = "array are not equal")
谢谢
有一个版本可以比较两个数组,这当然要求numpy数组的行为正常,即它们有len()并且允许方括号访问元素。现在,关于舍入误差,有可能定义delta或range,您可以使用它,但我不认为这允许在数组上使用。
恐怕你得自己动手了。
如果您使用的是numpy,为什么不使用numpy测试函数呢?
numpy.testing.assert_array_almost_equal
以及
numpy.testing.assert_array_almost_equal_nulp
这些还处理楠的罚款,检查形状等
试试看
self.assertTrue(numpy.allclose(array1, array2, rtol=1e-05, atol=1e-08))
numpy模块的allclose函数检查在给定的相对和绝对公差范围内,两个数组是否相同。rtol和atol是可选参数,默认值如上所示。
allclose
rtol
atol
感谢@DSM纠正我的错误。
有一个版本可以比较两个数组,这当然要求numpy数组的行为正常,即它们有len()并且允许方括号访问元素。现在,关于舍入误差,有可能定义delta或range,您可以使用它,但我不认为这允许在数组上使用。
恐怕你得自己动手了。
如果您使用的是numpy,为什么不使用numpy测试函数呢?
以及
这些还处理楠的罚款,检查形状等
试试看
numpy模块的
allclose
函数检查在给定的相对和绝对公差范围内,两个数组是否相同。rtol
和atol
是可选参数,默认值如上所示。感谢@DSM纠正我的错误。
相关问题 更多 >
编程相关推荐