On Fri, Jul 25, 2008 at 19:19, Stéfan van der Walt <[EMAIL PROTECTED]> wrote: > 2008/7/25 Thomas J. Duck <[EMAIL PROTECTED]>: >> 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 _______________________________________________ Numpy-discussion mailing list [email protected] http://projects.scipy.org/mailman/listinfo/numpy-discussion
