[Numpy-discussion] the difference of np.nan, np.NaN, np.NAN?
David Cournapeau
cournape@gmail....
Fri Oct 14 06:44:29 CDT 2011
On Fri, Oct 14, 2011 at 11:53 AM, Olivier Delalleau <shish@keba.be> wrote:
> 2011/10/14 Matthew Brett <matthew.brett@gmail.com>
>>
>> Hi,
>>
>> On Fri, Oct 14, 2011 at 4:33 AM, Chao YUE <chaoyuejoy@gmail.com> wrote:
>> > Dear all,
>> >
>> > is there any difference between np.nan, np.NaN and np.NAN? they really
>> > confuse me....
>> > they are all Not a Number?
>> >
>> > In [75]: np.nan==np.NaN
>> > Out[75]: False
>> >
>> > In [77]: np.NaN==np.NAN
>> > Out[77]: False
>>
>> The nan value is not equal to itself:
>>
>> In [70]: np.nan == np.nan
>> Out[70]: False
>>
>> See:
>>
>> http://en.wikipedia.org/wiki/NaN
>>
>> But:
>>
>> In [71]: np.isnan(np.nan)
>> Out[71]: True
>>
>> In [72]: np.isnan(np.NAN)
>> Out[72]: True
>>
>> In [73]: np.isnan(np.NaN)
>> Out[73]: True
>>
>> Best,
>>
>> Matthew
>
> Also on my computer:
>>>> numpy.nan is numpy.NAN
> True
>>>> numpy.nan is numpy.NaN
> True
>
> So they really are the same. But you shouldn't rely on this (always use
> numpy.isnan to test for nan-ness).
They are the same, just not equal to each other (or even to
themselves). As for the different NaN names in numpy namespace, I
think this is for historical reason (maybe because python itself used
to print nan differently on different platforms, although this should
not be the case anymore since python 2.6).
David
More information about the NumPy-Discussion
mailing list