[Numpy-discussion] 0d array value comparisons

Stéfan van der Walt stefan at sun.ac.za
Fri Jul 25 20:19:47 EDT 2008


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

In [21]: np.array([None, None, None]) == [None]
Out[21]: array([ True,  True,  True], dtype=bool)

Cheers
Stéfan



More information about the NumPy-Discussion mailing list