On 7/9/07, Alan G Isaac <[EMAIL PROTECTED]> wrote:
On Mon, 9 Jul 2007, Timothy Hochberg apparently wrote: > Why not simply use & and | instead of + and *? A couple reasons, none determinative. 1. numpy is right a Python is wrong it this case
I don't think I agree with this. Once you've decided to make Boolean a subclass of Int, then Python's behavior seems to be the most sensible. One could argue (and people did) about whether that was a good choice, but it's useful for a lot of practical applications. In any event, given that Boolean subclasses Int, I think the current behavior is probably for the best. (but granted, I would usually go with Python is such cases)
2. consistency with Boolean matrices
OK. I sort of read past the fact that you were referring to matrices not arrays. This doesn't matter to me personally because I don't use the matrix class. I do do matrix algebra on occasion, but the matrix class has never been helpful for me. YMMV. Elaboration on 2:
Boolean matrices currently behave as expected, with standard notation. Related to this, they handle exponents correctly. Suppose arrays are changed as you suggest. Then either - array behavior and matrix behavior are decoupled, or - matrix behavior is completely broken for boolen matrices Alan Isaac PS Examples of good behavior: >>> x matrix([[True, True], [True, False]], dtype=bool) >>> y matrix([[False, True], [True, False]], dtype=bool) >>> x*y matrix([[True, True], [False, True]], dtype=bool) >>> x**2 matrix([[True, True], [True, True]], dtype=bool)
x*y and x**2 are already decoupled for arrays and matrices. What if x*y was simply defined to do a boolean matrix multiply when the arguments are boolean matrices? I don't care about this that much though, so I'll let it drop. -- . __ . |-\ . . [EMAIL PROTECTED]
_______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion