我们用numpy.testing.assert_array_equal来Assert两个数组相等。但是做numpy.testing.assert_array_not_equal的最好方法是什么,即确保两个数组不相等?
numpy.testing.assert_array_equal
numpy.testing.assert_array_not_equal
hlswsv351#
如果你想专门使用NumPy测试,那么你可以使用numpy.testing.assert_array_equal和numpy.testing.assert_raiss来获得相反的结果。
assert_raises(AssertionError, assert_array_equal, array_1, array_2)
还有numpy.testing.utils.assert_array_compare(它被numpy.testing.assert_array_equal使用),但是我没有看到它的文档,所以要小心使用。这个将检查每个元素是否不同,所以我猜这不是你的用例:
numpy.testing.utils.assert_array_compare
import operator assert_array_compare(operator.__ne__, array_1, array_2)
oknwwptz2#
我不认为NumPy测试框架中有任何直接内置的东西,但您可以用途:
np.any(np.not_equal(a1,a2))
并使用内置单元测试框架Asserttrue或使用NumPy检查assert_equal到True,例如
assert_equal
True
np.testing.assert_equal(np.any(np.not_equal(a,a)), True)
wlsrxk513#
不知道为什么这还没有被张贴,可能是我没有正确理解的问题,但关于:
assert not np.array_equal(array1 , array2)
有什么原因让你想把它单独放在numpy的测试模块里吗?
pbgvytdp4#
@Eswcvlad答案的语法更简洁:
import numpy as np with np.testing.assert_raises(AssertionError): np.testing.assert_array_equal(expected, actual)
eh57zj3b5#
也许你通常想测试某个值是否几乎相等(考虑到小数精度),因此在某些情况下想测试某个值是否不几乎相等。基于@Mikhail answer(也使用pytest. raiss),可以给予:
import numpy as np import pytest with pytest.raises(AssertionError): np.testing.assert_almost_equal(...)
nafvub8i6#
改进可接受的answer,我们可以使assert_array_not_equal如下
assert_array_not_equal
from numpy.testing import assert_array_equal, assert_raises def assert_array_not_equal(x, y): return assert_raises(AssertionError, assert_array_equal, x, y)
6条答案
按热度按时间hlswsv351#
如果你想专门使用NumPy测试,那么你可以使用
numpy.testing.assert_array_equal
和numpy.testing.assert_raiss来获得相反的结果。还有
numpy.testing.utils.assert_array_compare
(它被numpy.testing.assert_array_equal
使用),但是我没有看到它的文档,所以要小心使用。这个将检查每个元素是否不同,所以我猜这不是你的用例:oknwwptz2#
我不认为NumPy测试框架中有任何直接内置的东西,但您可以用途:
并使用内置单元测试框架Asserttrue或使用NumPy检查
assert_equal
到True
,例如wlsrxk513#
不知道为什么这还没有被张贴,可能是我没有正确理解的问题,但关于:
有什么原因让你想把它单独放在numpy的测试模块里吗?
pbgvytdp4#
@Eswcvlad答案的语法更简洁:
eh57zj3b5#
也许你通常想测试某个值是否几乎相等(考虑到小数精度),因此在某些情况下想测试某个值是否不几乎相等。基于@Mikhail answer(也使用pytest. raiss),可以给予:
nafvub8i6#
改进可接受的answer,我们可以使
assert_array_not_equal
如下