[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
> 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.
> 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...
More information about the NumPy-Discussion