[Numpy-discussion] matrix default to column vector?

Charles R Harris charlesr.harris at gmail.com
Sat Jun 6 00:41:57 EDT 2009

On Fri, Jun 5, 2009 at 11:30 AM, Alan G Isaac <aisaac at american.edu> wrote:

> On 6/5/2009 11:38 AM Olivier Verdier apparently wrote:
> > I think matrices can be pretty tricky when used for
> > teaching.  For instance, you have to explain that all the
> > operators work component-wise, except the multiplication!
> > Another caveat is that since matrices are always 2x2, the
> > "scalar product" of two column vectors computed as " x.T
> > * y" will not be a scalar, but a 2x2 matrix. There is also
> > the fact that you must cast all your vectors to column/raw
> > matrices (as in matlab). For all these reasons, I prefer
> > to use arrays and dot for teaching, and I have never had
> > any complaints.
> I do not understand this "argument".
> You should take it very seriously when someone
> reports to you that the matrix object is a crucial to them,
> e.g., as a teaching tool.  Even if you do not find
> personally persuasive an example like
> http://mail.scipy.org/pipermail/numpy-discussion/2009-June/043001.html
> I have told you: this is important for my students.
> Reporting that your students do not complain about using
> arrays instead of matrices does not change this one bit.
> Student backgrounds differ by domain of application.  In
> economics, matrices are in *very* wide use, and
> multidimensional arrays get almost no use.  Textbooks in
> econometrics (a huge and important field, even outside of
> economics) are full of proofs using matrix algebra.
> A close match to what the students see is crucial.
> When working with multiplication or exponentiation,
> matrices do what they expect, and 2d arrays do not.
> One more point. As Python users we get used to installing
> a package here and a package there to add functionality.
> But this is not how most people looking for a matrix
> language see the world.  Removing the matrix object from
> NumPy will raise the barrier to adoption by social
> scientists, and there should be a strongly persuasive reason
> before taking such a step.
> Separately from all that, does anyone doubt that there is
> code that depends on the matrix object?  The core objection
> to a past proposal for useful change was that it could break
> extant code.  I would hope that nobody who took that
> position would subsequently propose removing the matrix
> object altogether.
> Cheers,
> Alan Isaac
> PS If x and y are "column vectors" (i.e., matrices), then
> x.T * y *should* be a 1×1 matrix.
> Since the * operator is doing matrix multiplication,
> this is the correct result, not an anomaly.

Well, one could argue that. The x.T is a member of the dual, hence maps
vectors to the reals. Usually the reals aren't represented by 1x1 matrices.
Just my [.02] cents.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20090605/fc049275/attachment.html>

More information about the NumPy-Discussion mailing list