我使用像np.testing.assert_all_equal
这样的断言来检查数组是否符合预期。然而,对于二维数组,我只看到轴0的3个元素。例如:
import numpy as np
x1 = np.expand_dims(np.arange(10), 1)
x2 = np.expand_dims(np.arange(10), 1)
x2[8] = 0
np.testing.assert_almost_equal(x1, x2)
结果是:
AssertionError:
Arrays are not almost equal to 7 decimals
Mismatched elements: 1 / 10 (10%)
Max absolute difference: 8
Max relative difference: 0.
x: array([[0],
[1],
[2],...
y: array([[0],
[1],
[2],...
这是没有帮助的,因为我无法看到不匹配的地方。我试过用np.set_printoptions(edgeitems=10)
,但没有用。
我如何设置它,以便我的断言在失败时打印数组的全部内容?
我猜你不能做任何关于它的最大3个元素是硬编码在numpy.testing._private.utils.build_err_msg
:
if r.count('n') > 3:
r = 'n'.join(r.splitlines()[:3])
r += '...'
(除非您基于numpy创建自己的build_err_msg
并重新定义np.testing._private.utils.build_err_msg = my_build_err_msg
)