[Numpy-discussion] Comparison changes

Nathaniel Smith njs at pobox.com
Fri Jan 24 19:18:12 EST 2014


On 25 Jan 2014 00:05, "Sebastian Berg" <sebastian at sipsolutions.net> wrote:
>
> Hi all,
>
> in https://github.com/numpy/numpy/pull/3514 I proposed some changes to
> the comparison operators. This includes:
>
> 1. Comparison with None will broadcast in the future, so that `arr ==
> None` will actually compare all elements to None. (A FutureWarning for
> now)
>
> 2. I added that == and != will give FutureWarning when an error was
> raised. In the future they should not silence these errors anymore. (For
> example shape mismatches)

This can just be a DeprecationWarning, because the only change is to raise
new more errors.

> 3. We used to use PyObject_RichCompareBool for equality which includes
> an identity check. I propose to not do that identity check since we have
> elementwise equality (returning an object array for objects would be
> nice in some ways, but I think that is only an option for a dedicated
> function). The reason is that for example
>
> >>> a = np.array([np.array([1, 2, 3]), 1])
> >>> b = np.array([np.array([1, 2, 3]), 1])
> >>> a == b
>
> will happen to work if it happens to be that `a[0] is b[0]`. This
> currently has no deprecation, since the logic is in the inner loop and I
> am not sure if it is easy to add well there.

Surely any environment where we can call PyObject_RichCompareBool is an
environment where we can issue a warning...?

-n
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20140125/40d793b0/attachment.html>


More information about the NumPy-Discussion mailing list