python,测试矩阵中的所有值是否小于numpy.finfo(float).eps

时间:2014-02-20 18:02:07

标签: python numpy matrix

我想测试矩阵的所有元素是否等于零。我有一个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).eps1.0 + eps = 1.0,这应该返回True

有没有办法测试矩阵中的所有值是否都小于numpy.finfo(float).eps

顺便说一句,numpy.finfo(float).eps = 2.22044604925e-16

1 个答案:

答案 0 :(得分:3)

您正在比较两个浮点数,请改用np.allclose

In [119]: np.allclose( my_matrix, np.zeros((3,3)) )
Out[119]: True