Abel Daniel wrote: > Robert Kern <robert.kern <at> gmail.com> writes: > > >> Abel Daniel wrote: >> >>> Now, I think that having a way of getting an element-wise comparison >>> (i.e. getting an array of bools) is great. _But_ why make that the >>> result of a '==' comparison? Is there any actual code that does, for >>> example >>> >>>>>> result_array = a==b >>>>>> >>> or any variant thereof? >>> >> Yes, a lot. >> >> > And it would be much more cumbersome to use something like > numpy.eq_as_array(a,b) or a.eq_as_array(b) in these cases? > Yes. > Could you show an example so that I can better appreciate the difference? > # Replace all zeros with something safe so some calculation doesn't go insance. a[a==0] = DELTA
Keep in mind also that all of the comparison operators are overloaded. It would be difficult to explain if "a<=0" returned an array, but "a==0" returned a scalar. > The thing I can't get into my head is that '=' in the mathematical sense has a > well-defined meaning for matrices, this seems to be broken by the current > behaviour. Numpy is not really about matrices. Numpy is about array's which are different and, for the most part, more powerful. You can use arrays inside numpyif you insist, but I personally think you're better off just learning to use arrays. Tastes vary though. > That is, what "A+B" on a blackboard in a math class means maps nicely > to what 'a+b' means with a and b being numpy arrays. But 'A=B' means something > completely different than 'a==b'. > One thing to keep in mind is that what you have in mind, which is equivalent to numpy.all(a==b) is almost always a bad idea when using floating point. -tim _______________________________________________ Numpy-discussion mailing list [email protected] http://projects.scipy.org/mailman/listinfo/numpy-discussion
