2010/12/12 Scott Stephens <span dir="ltr">&lt;<a href="mailto:stephens.js@gmail.com">stephens.js@gmail.com</a>&gt;</span><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Why does this work:<br>
<br>
&gt;&gt;&gt; import numpy as np<br>
&gt;&gt;&gt; np.dot(np.array([1.,2.]),np.array([[10.,20.],[0.1,0.2]]))<br>
array([ 10.2,  20.4])<br>
<br>
But this doesn&#39;t:<br>
<br>
&gt;&gt;&gt; import numpy as np<br>
&gt;&gt;&gt; np.dot(np.array([1.,2.]),np.array([[10.]]))<br>
Traceback (most recent call last):<br>
  File &quot;&lt;stdin&gt;&quot;, line 1, in &lt;module&gt;<br>
ValueError: matrices are not aligned<br><br></blockquote><div><br>For 2D matrices, np.dot is matrix multiplication, so the length of the first dimension (rows) of the first array must match the length of the second dimension (columns) of the second array.<br>
<br>In your first example you have arrays with shape (2,), and (2,2) so the dimensions match.  Your second example has dimensions (2,) and (1,1), so they don&#39;t match. (The matrices are not aligned.)<br><br>Hope it answers your question. (You may also look at &quot;help np.dot&quot;)  <br>
<br>Åsmund Hjulstad<br><br></div></div>