[Numpy-discussion] simple vector->matrix question

Warren Weckesser warren.weckesser at enthought.com
Thu Oct 6 08:41:13 EDT 2011


On Thu, Oct 6, 2011 at 7:29 AM, Samuel John <scipy at samueljohn.de> wrote:

> I just learned two things:
>
> 1. np.newaxis
> 2. Array dimension broadcasting rocks more than you think.
>
>

Yup. :)



>
> The x[:, np.newaxis] might not be the most intuitive solution but it's
> great and powerful.
> Intuitive would be to have x.T to transform [0,1,2,4] into
> [[0],[1],[2],[4]].
>


I agree, creating a new dimension by indexing with np.newaxis isn't the
first thing I would guess if I didn't already know about it.  An alternative
is x.reshape(4,1) (or even better, x.reshape(-1,1) so it doesn't explicitly
refer to the length of x).

(Also, you probably noticed that transposing won't work, because x is
one-dimensional.  The transpose operation simply swaps dimensions, and with
just one dimension there is nothing to swap; x.T is the same as x.)

Warren



> Thanks Warren :-)
> Samuel
>
> On 06.10.2011, at 14:18, Warren Weckesser wrote:
>
> >
> >
> > On Thu, Oct 6, 2011 at 7:08 AM, Neal Becker <ndbecker2 at gmail.com> wrote:
> > Given a vector y, I want a matrix H whose rows are
> >
> > y - x0
> > y - x1
> > y - x2
> > ...
> >
> >
> > where x_i are scalars
> >
> > Suggestion?
> >
> >
> >
> > In [15]: import numpy as np
> >
> > In [16]: y = np.array([10.0, 20.0, 30.0])
> >
> > In [17]: x = np.array([0, 1, 2, 4])
> >
> > In [18]: H = y - x[:, np.newaxis]
> >
> > In [19]: H
> > Out[19]:
> > array([[ 10.,  20.,  30.],
> >        [  9.,  19.,  29.],
> >        [  8.,  18.,  28.],
> >        [  6.,  16.,  26.]])
> >
> >
> > Warren
> >
> >
> > _______________________________________________
> > NumPy-Discussion mailing list
> > NumPy-Discussion at scipy.org
> > http://mail.scipy.org/mailman/listinfo/numpy-discussion
> >
> > _______________________________________________
> > NumPy-Discussion mailing list
> > NumPy-Discussion at scipy.org
> > http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20111006/b982b4f1/attachment.html>


More information about the NumPy-Discussion mailing list