[Numpy-discussion] unexpected behavior with allclose( scalar, empty array)
Andrew Straw
strawman at astraw.com
Fri Jan 4 16:00:39 EST 2008
Thanks, I updated the page.
Charles R Harris wrote:
>
>
> On Jan 4, 2008 12:27 PM, Andrew Straw <strawman at astraw.com
> <mailto:strawman at astraw.com>> wrote:
>
> I have added a page to the wiki describing this issue:
>
> http://scipy.org/numpy_warts_and_gotchas
>
> I'll link it into the main documentation pages over the next few
> days,
> but I ask for a review the following text for correctness and clarity:
> (You can simply edit the wiki page or post your reply here and
> I'll do it.)
>
> Like most of numpy, allclose() uses the broadcasting rules when
> performing its operation. This leads to the following behavior:
>
> >>> a=32
> >>> b=numpy.array([])
> >>> numpy.allclose(a,b)
> True
>
> Upon closer inspection, we can see that the broadcasting rules
> cause a
> to become a zero-dimensional array like b. The default truth value
> of a
>
>
> It is not the dimensions, it's the fact that the array is empty, so
> that anything said about it's non-existent elements is true, i.e., x
> in empty -> anything is always true because x in empty is always
> false. So we also have the following:
>
> In [1]: allclose(32,[[]])
> Out[1]: True
>
> The other reason is that because of broadcasting, the shape of the
> arrays may be immaterial.
>
> Chuck
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion at scipy.org
> http://projects.scipy.org/mailman/listinfo/numpy-discussion
>
More information about the NumPy-Discussion
mailing list