我想测试矩阵的所有元素是否等于零。我有一个3x3矩阵,其中包含非常小的但非零的元素。像这样:
my_matrix = numpy.mat(
[[ 1.32439783e-16, -1.09384837e-16, 5.22327024e-17],
[ -1.47879836e-17, 1.58560316e-17, -8.18983137e-19],
[ 3.40590503e-17, -1.36768936e-17, 3.33256165e-17]]
)
我通常会使用:
np.array_equal( my_matrix, np.zeros((3,3)) )
但这返回
False
。我的印象是,由于此矩阵内所有元素的绝对值均小于numpy.finfo(float).eps
(其中1.0 + eps = 1.0
,因此应返回True
)。有没有一种方法可以测试矩阵中的所有值是否都小于
numpy.finfo(float).eps
?顺便说一句,
numpy.finfo(float).eps = 2.22044604925e-16
。 最佳答案
您正在比较两个浮子垫,请改用np.allclose
:
In [119]: np.allclose( my_matrix, np.zeros((3,3)) )
Out[119]: True
关于python - python,测试矩阵中的所有值是否均小于numpy.finfo(float).eps,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21915948/