On Fri, May 23, 2008 at 10:16 AM, Keith Goodman <[EMAIL PROTECTED]> wrote: > I'm writing unit tests for a module that contains matrices. I was > surprised that these are True: > >>> import numpy.matlib as mp >>> x = mp.matrix([[mp.nan]]) >>> x.any() > True >>> x.all() > True > > My use case is (x == y).all() where x and y are the same matrix except > that x contains one NaN. Certianly x and y are not equal. > >>> x = mp.asmatrix(range(4)).reshape(2,2) >>> y = mp.asmatrix(range(4)).reshape(2,2) >>> x[0,0] = mp.nan >>> (x == y).all() > True
Sorry. Ignore the last example. I used integers. Here's the example with floats: >> x = 1.0 * mp.asmatrix(range(4)).reshape(2,2) >> y = 1.0 * mp.asmatrix(range(4)).reshape(2,2) >> x[0,0] = mp.nan >> x matrix([[ NaN, 1.], [ 2., 3.]]) >> (x == y).all() False But the first example >> x = mp.matrix([[mp.nan]]) >> x matrix([[ NaN]]) >> x.all() True >> x.any() True is still surprising. _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion