[Numpy-discussion] matrix default to column vector?

Alan G Isaac aisaac at american.edu
Sat Jun 6 17:00:44 EDT 2009

On 6/6/2009 4:30 PM Robert Kern apparently wrote:
> The old idea of introducing RowVector and ColumnVector would help
> here. If x were a ColumnVector and A a Matrix, then you can introduce
> the following rules:
>
> x.T is a RowVector
> RowVector * ColumnVector is a scalar
> RowVector * Matrix is a RowVector
> Matrix * ColumnVector is a ColumnVector

To me, a "row vector" is just a matrix with a single row,
and a "column vector" is just a matrix with a single column.
Calling them "vectors" is rather redundant, since matrices
are also vectors (i.e., belong to a vector space).

I think the core of the row-vector/column-vector proposal
is really the idea that we could have 1d objects that
also have an "orientation" for the purposes of certain
operations. But then why not just use matrices, which
automatically provide that "orientation"?

Here are the 3 reasons I see:
- to allow iteration over matrices to produce a
less surprising result (*if* you find it surprising
that a matrix is a container of matrices, as I do)
- to allow 1d indexing of these "vectors"
- to introduce a scalar product

I rather doubt (?) that these justify the added complexity