<br><br><div class="gmail_quote">On Thu, Oct 6, 2011 at 7:29 AM, Samuel John <span dir="ltr">&lt;<a href="mailto:scipy@samueljohn.de">scipy@samueljohn.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

I just learned two things:<br>
<br>
1. np.newaxis<br>
2. Array dimension broadcasting rocks more than you think.<br>
<br></blockquote><div><br><br>Yup. :)<br><br> <br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
The x[:, np.newaxis] might not be the most intuitive solution but it&#39;s great and powerful.<br>
Intuitive would be to have x.T to transform [0,1,2,4] into [[0],[1],[2],[4]].<br></blockquote><div><br><br>I agree, creating a new dimension by indexing with np.newaxis isn&#39;t the first thing I would guess if I didn&#39;t already know about it.  An alternative is x.reshape(4,1) (or even better, x.reshape(-1,1) so it doesn&#39;t explicitly refer to the length of x).<br>

<br>(Also, you probably noticed that transposing won&#39;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.)<br>

<br>Warren<br><br><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
Thanks Warren :-)<br>
<font color="#888888">Samuel<br>
</font><div><div></div><div class="h5"><br>
On 06.10.2011, at 14:18, Warren Weckesser wrote:<br>
<br>
&gt;<br>
&gt;<br>
&gt; On Thu, Oct 6, 2011 at 7:08 AM, Neal Becker &lt;<a href="mailto:ndbecker2@gmail.com">ndbecker2@gmail.com</a>&gt; wrote:<br>
&gt; Given a vector y, I want a matrix H whose rows are<br>
&gt;<br>
&gt; y - x0<br>
&gt; y - x1<br>
&gt; y - x2<br>
&gt; ...<br>
&gt;<br>
&gt;<br>
&gt; where x_i are scalars<br>
&gt;<br>
&gt; Suggestion?<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; In [15]: import numpy as np<br>
&gt;<br>
&gt; In [16]: y = np.array([10.0, 20.0, 30.0])<br>
&gt;<br>
&gt; In [17]: x = np.array([0, 1, 2, 4])<br>
&gt;<br>
&gt; In [18]: H = y - x[:, np.newaxis]<br>
&gt;<br>
&gt; In [19]: H<br>
&gt; Out[19]:<br>
&gt; array([[ 10.,  20.,  30.],<br>
&gt;        [  9.,  19.,  29.],<br>
&gt;        [  8.,  18.,  28.],<br>
&gt;        [  6.,  16.,  26.]])<br>
&gt;<br>
&gt;<br>
&gt; Warren<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; NumPy-Discussion mailing list<br>
&gt; <a href="mailto:NumPy-Discussion@scipy.org">NumPy-Discussion@scipy.org</a><br>
&gt; <a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; NumPy-Discussion mailing list<br>
&gt; <a href="mailto:NumPy-Discussion@scipy.org">NumPy-Discussion@scipy.org</a><br>
&gt; <a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
<br>
_______________________________________________<br>
NumPy-Discussion mailing list<br>
<a href="mailto:NumPy-Discussion@scipy.org">NumPy-Discussion@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
</div></div></blockquote></div><br>