[Numpy-discussion] a==b for numpy arrays

David Goldsmith David.L.Goldsmith at noaa.gov
Mon Dec 11 19:19:17 CST 2006

Abel Daniel wrote:
> to what 'a+b' means with a and b being numpy arrays. But 'A=B' means something
> completely different than 'a==b'.
I disagree: A=B "on the blackboard" does mean that every element in A 
equals its positionally-corresponding element in B, and a==b in numpy 
will only be wholly true if a=b in the blackboard sense.  As has been 
said by others in this thread, what needs to be adjusted to (and many 
off-the-shelf numerical programs have operated this way for years, so 
it's not like one has to make this adjustment - if they haven't already 
- only if one is using numpy) is what Robert calls "rich comparisons", 
i.e., a comparison of arrays/matrices returns a boolean-valued but 
otherwise similar object, whose elements indicate whether the comparison 
is true or false at each position.  To determine if the comparison 
returns true for every element, all one has to do is use the 'all' 
method - not a huge amount of overhead, and now rather ubiquitous (in my 
experience) throughout the numerical software community (not to mention 
that rich comparison is _much_ more flexible, and in that, powerful).  
Oh, and another convenience method with which you should be aware is 
'any', which returns true if any of the element-wise comparisons are true.

> I tried to dig up something about this "'a==b' return an array" decision from
> the discussion surrounding PEP 207 (on comp.lang.python or on python-dev) but I
> got lost in that thread.

More information about the Numpy-discussion mailing list