[PYTHON MATRIX-SIG] default axes

Konrad Hinsen hinsen@physik.rwth-aachen.de
Thu, 15 Aug 1996 10:37:44 +0200

   For ufunc.add.reduce(), sort() & Co., and fft(), -1 seems the most
   natural choice for me.

I agree about sort and fft, but not about reduce etc.
(Besides, another argument is compatibility with the Python built-in
reduce(), which when applied to a nested list reduces along the
outermost nesting level, i.e. the first axis.

   > take, choose, repeat, compress

   About take(), I don't really know. Maybe 0. choose()... does it have a
   default axis? repeat() is like concatenate(), the default axis should
   be 0. compress()... no idea.

I'd say 0 for all of them.

   trace() and diagonal()... should they operate on the diagonal between
   -1 and -2, especially if reduce and the others will use the default


   matrices. Likewise, dot() should reduce -1.

Actually, dot() is the only function about which I am not sure.
There are several options that make sense:
1) Axis -1 for both arguments. Good for vectors and lists of vectors.
2) Axis -1 for the first and -2 for the second. Good for matrices
   and lists of matrices.
3) Axis -1 for the first and 0 for the second. Good for higher-rank
My personal favourite is 3), but I can't give any relly good argument.
But evidently dot() needs two optional axis arguments to cover all cases.


Konrad Hinsen                     | E-Mail: hinsenk@ere.umontreal.ca
Departement de Chimie             | Tel.: +1-514-343-6111 ext. 3953
Universite de Montreal            | Fax:  +1-514-343-7586
C.P. 6128, succ. A                | Deutsch/Esperanto/English/Nederlands/
Montreal (QC) H3C 3J7             | Francais (phase experimentale)

MATRIX-SIG  - SIG on Matrix Math for Python

send messages to: matrix-sig@python.org
administrivia to: matrix-sig-request@python.org