numpy测试断言数组不相等

问题描述 投票:14回答:3

我们有numpy.testing.assert_array_equal断言两个数组相等。

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

python numpy python-unittest
3个回答
17
投票

如果你想特别使用NumPy测试,那么你可以使用numpy.testing.assert_array_equalnumpy.testing.assert_raises来获得相反的结果。例如:

assert_raises(AssertionError, assert_array_equal, array_1, array_2)

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

import operator

assert_array_compare(operator.__ne__, array_1, array_2)

5
投票

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

np.any(np.not_equal(a1,a2))

并使用内置的单元测试框架断言或使用NumPy作为assert_equal检查True,例如

np.testing.assert_equal(np.any(np.not_equal(a,a)), True)

2
投票

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

assert not np.array_equal(array1 , array2)

你有什么理由想把它专门保留在numpy的测试模块中吗?

© www.soinside.com 2019 - 2024. All rights reserved.