numpy测试断言数组不相等

Hal*_*sen 16 python numpy python-unittest

我们必须numpy.testing.assert_array_equal断言两个数组相等.

但是,最好的方法是做什么numpy.testing.assert_array_not_equal,即确保两个数组不相等?

Esw*_*lad 18

如果您想使用特定的NumPy测试,那么您可以numpy.testing.assert_array_equalnumpy.testing.assert_raises一起使用以获得相反的结果.例如:

assert_raises(AssertionError, assert_array_equal, array_1, array_2)
Run Code Online (Sandbox Code Playgroud)

还有numpy.testing.utils.assert_array_compare(它被使用numpy.testing.assert_array_equal),但我没有在任何地方看到它,所以请谨慎使用.这个将检查每个元素是否不同,所以我想这不是你的用例:

import operator

assert_array_compare(operator.__ne__, array_1, array_2)
Run Code Online (Sandbox Code Playgroud)


小智 7

不知道为什么这个还没有发布,可能是我没有正确理解这个问题,但是:

assert not np.array_equal(array1 , array2)
Run Code Online (Sandbox Code Playgroud)

为什么你想将它专门保留在 numpy 的测试模块中?


Mar*_*ark 6

我认为NumPy测试框架没有直接构建,但您可以使用:

np.any(np.not_equal(a1,a2))
Run Code Online (Sandbox Code Playgroud)

与内置的单元测试框架断言真或NumPy的支票assert_equal,以True

np.testing.assert_equal(np.any(np.not_equal(a,a)), True)
Run Code Online (Sandbox Code Playgroud)