Cob*_*bry 7 python unit-testing numpy python-2.7
实现比较两个numpy浮点数组的unittest的最佳方法是什么.
我已经尝试过unittest.assertEqual()但是对于float数组不起作用,因为float永远不会100%相等.我不能使用assertAlmostEqual,因为它测试圆(浮点)相等...
有没有人实现这样的事情
self.assertFloatArrayEqual(array1, array2, msg = "array are not equal")
Run Code Online (Sandbox Code Playgroud)
谢谢
seb*_*erg 22
如果你还在使用numpy,为什么不使用numpy测试功能呢?
numpy.testing.assert_array_almost_equal
Run Code Online (Sandbox Code Playgroud)
和
numpy.testing.assert_array_almost_equal_nulp
Run Code Online (Sandbox Code Playgroud)
这些也处理NaN的精细,检查形状等.
尝试
self.assertTrue(numpy.allclose(array1, array2, rtol=1e-05, atol=1e-08))
Run Code Online (Sandbox Code Playgroud)
allclose来自numpy模块的函数检查两个数组是否相同机器精度给定的相对和绝对容差.rtol并且atol是具有上面给出的默认值的可选参数.
感谢@DSM纠正我.
有一个版本可以比较两个数组,这当然要求 numpy 数组行为正常,即它们有 len() 并且允许方括号访问元素。现在,关于舍入误差,可以定义您可以使用的增量或范围,但我认为这不允许在数组上使用。
恐怕你得自己动手。
| 归档时间: |
|
| 查看次数: |
6030 次 |
| 最近记录: |