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

sebastian sebastian at sipsolutions.net
Thu Jul 4 09:12:16 EDT 2013


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).

- Sebastian

> Thanks,
> Tom
> 
> ps: cross-posting to stackoverflow
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion



More information about the NumPy-Discussion mailing list