[SciPy-dev] Arrays as truth values?
perry at stsci.edu
Tue Nov 8 09:35:42 CST 2005
On Nov 8, 2005, at 9:21 AM, Ed Schofield wrote:
> I agree with this reasoning, but I'd like to illustrate a drawback to
> new behaviour:
>>>> a1 = array([1,2,3])
>>>> a2 = a1
>>>> if a1 == a2:
> ... print "equal"
>>> a1 = array([[1,2,3],[1,2,3]])
>>> a2 = array([1,2,3])
>>> a1 == a2
These two arrays are not the same shape but because of broadcasting
will show to be equal. Is this what you intended? Some might, some
Robert has already pointed out that lots of people want == to result in
an array of booleans (most I'd argue) rather than a single boolean
And if you wanted to use the current Numeric behavior, then
>>> array([0,0]) == array([0,1])
will not do what you wish it since there is at least one equal element,
it is treated as true. (again reiterating Robert's point.) Your example
illustrates exactly why allowing this behavior is dangerous. Two
different people looking at this may expect two different results.
More information about the Scipy-dev