我想测试矩阵的所有元素是否等于零。我有一个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/

10-09 18:04
查看更多