Grissiom wrote:
> I know I should use array_equal to test two arrays
Not answering your question, but I hadn't known about array_equal, so
when I saw this, I thought: great! I can get rid of a bunch of ugly code
in my tests. However, it doesn't work as I would like for NaNs:
>>> a
array([ 1., 2., NaN, 4.])
>>> b
array([ 1., 2., NaN, 4.])
>>> np.array_equal(a,b)
False
which makes sense, as:
>>> np.nan == np.nan
False
however, for my purposes, and for my tests, if two arrays have NaNs in
the same places, and all the other values are equal, they should be
considered equal. I guess my way of thinking about it is that:
np.array_equal(a, a)
should always return True
I understand that there are good reasons that NaN != NaN. However, it
sure would be nice to have an array_equal that fit my purposes -- maybe
a flag one could set?
np.array_equal(a1, a2, nan_equal=True)
-Chris
--
Christopher Barker, Ph.D.
Oceanographer
Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception
Chris.Barker@noaa.gov