Dear Guido, Thank you for your email.
On Tue, Jul 29, 2008 at 8:26 PM, Guido van Rossum <[EMAIL PROTECTED]> wrote: > But would it be totally outlandish to propose A**B for matrix > multiplication? I can't think of what "matrix exponentiation" would > mean... Right now, ** is the pointwise power: >>> from numpy import * >>> A=array([[1,2],[3,4]]) >>> print(A**A) [[ 1 4] [ 27 256]] Since all the scalar operators have meaning as pointwise operator, like you say it's hard to bump one off to give it to the matrix product instead. I don't know if it's a good idea with **, it will destroy the orthogonality of the system. They used to say, ignore LISP at your own peril. In that spirit, let me describe MATLAB's approach to this. It features a complete suite of matrix operators (+-*/\^), and their pointwise variants (.+ .- ./ .* .^), although + and .+ are synonyms, as are - and.-. Right now, numpy's *,**,/ correspond to MATLAB .*,.^,./. MATLAB implements scalar^matrix, matrix^scalar, but not matrix^matrix (although since log and exp are defined, I guess you could clobber together a meaning for matrix^matrix). Since ^ is the matrix-product version of "power", 2^A may not be what you expect: >> 2^A 10.4827 14.1519 21.2278 31.7106 Sincerely, -- Sébastien Loisel _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com