On Sat, Mar 15, 2014 at 2:12 PM, Alexander Belopolsky <ndarray@mac.com> wrote:

With the current numpy, we can doOn Sat, Mar 15, 2014 at 4:00 PM, Charles R Harris <charlesr.harris@gmail.com> wrote:

These days they are usually written as v*w.T, i.e., the outer product of two vectors and are a fairly common occurrence in matrix expressions. For instance, covariance matrices are defined as E(v * v.T)>>> x = arange(1, 5)>>> x[:,None].dot(x[None,:])array([[ 1, 2, 3, 4],[ 2, 4, 6, 8],[ 3, 6, 9, 12],[ 4, 8, 12, 16]])I assume once @ becomes available, we will have>>> x[:,None] @ x[None,:]array([[ 1, 2, 3, 4],[ 2, 4, 6, 8],[ 3, 6, 9, 12],[ 4, 8, 12, 16]])

Yes, that works. I was thinking more of easy translation of the forms found in textbooks. Householder reflection, for instance, is usually written as

I - 2 * v * v.T

Where the `v` are unit vectors.

Chuck