[Numpy-discussion] 0d array value comparisons

Robert Kern robert.kern at gmail.com
Fri Jul 25 22:41:29 EDT 2008


On Fri, Jul 25, 2008 at 19:19, Stéfan van der Walt <stefan at sun.ac.za> wrote:
> 2008/7/25 Thomas J. Duck <tom.duck at dal.ca>:
>> Hi,
>>
>>      There is some unexpected behaviour (to me) when 0-dimensional
>> arrays are compared with values.  For example:
>>
>>  >>> numpy.array([0]).squeeze() == 0
>> True
>>
>>  >>> numpy.array([None]).squeeze() == None
>> False
>>
>>  >>> numpy.array(['a']).squeeze() == 'a'
>> array(True, dtype=bool)
>>
>> Note that each test follows the same pattern, although the dtype for
>> each squeezed array is different.  The first case result is what I
>> expected, and the second case result appears wrong.  The return type
>> for the third case is inconsistent with those before, but is at least
>> workable.
>>
>>      Are these the intended results?
>
> I would think not.  E.g., in the following case broadcasting should kick in:
>
> In [20]: np.array([None, None, None]) == None
> Out[20]: False

(some_ndarray == None) == False is actually an intentional special
case. I forget the details of why, and I don't feel like reinstalling
Numeric or numarray to see if it was backwards compatibility, but it's
not a bug.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth."
 -- Umberto Eco


More information about the NumPy-Discussion mailing list