[Numpy-discussion] Equality not working as expected with ndarray sub-class

Frédéric Bastien nouiz at nouiz.org
Thu Jul 4 09:22:56 EDT 2013


On Thu, Jul 4, 2013 at 9:12 AM, sebastian <sebastian at sipsolutions.net>wrote:

> On 2013-07-04 15:06, Thomas Robitaille wrote:
> > Hi everyone,
> >
> > The following example:
> >
> >     import numpy as np
> >
> >     class SimpleArray(np.ndarray):
> >
> >         __array_priority__ = 10000
> >
> >         def __new__(cls, input_array, info=None):
> >             return np.asarray(input_array).view(cls)
> >
> >         def __eq__(self, other):
> >             return False
> >
> >     a = SimpleArray(10)
> >     print (np.int64(10) == a)
> >     print (a == np.int64(10))
> >
> > gives the following output
> >
> >     $ python2.7 eq.py
> >     True
> >     False
> >
> > so that in the first case, SimpleArray.__eq__ is not called. Is this a
> > bug, and if so, can anyone think of a workaround? If this is expected
> > behavior, how do I ensure SimpleArray.__eq__ gets called in both
> > cases?
> >
>
> This should be working in all development versions. I.e. NumPy >1.7.2
> (which is not released yet).
>

I think you mean: NumPy >= 1.7.2

Fred
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20130704/52d7550c/attachment.html>


More information about the NumPy-Discussion mailing list