<br><br><div class="gmail_quote">On Fri, Jun 10, 2011 at 3:02 PM, Charles R Harris <span dir="ltr">&lt;<a href="mailto:charlesr.harris@gmail.com">charlesr.harris@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<br><br><div class="gmail_quote"><div><div></div><div class="h5">On Fri, Jun 10, 2011 at 1:50 PM, Benjamin Root <span dir="ltr">&lt;<a href="mailto:ben.root@ou.edu" target="_blank">ben.root@ou.edu</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Came across an odd error while using numpy master.  Note, my system is 32-bits.<br><br>&gt;&gt;&gt; import numpy as np<br>&gt;&gt;&gt; type(np.sum([1, 2, 3], dtype=np.int32)) == np.int32<br>False<br>&gt;&gt;&gt; type(np.sum([1, 2, 3], dtype=np.int64)) == np.int64<br>




True<br>&gt;&gt;&gt; type(np.sum([1, 2, 3], dtype=np.float32)) == np.float32<br>True<br>&gt;&gt;&gt; type(np.sum([1, 2, 3], dtype=np.float64)) == np.float64<br>True<br><br>So, only the summation performed with a np.int32 accumulator results in a type that doesn&#39;t match the expected type.  Now, for even more strangeness:<br>




<br>&gt;&gt;&gt; type(np.sum([1, 2, 3], dtype=np.int32))<br>&lt;type &#39;numpy.int32&#39;&gt;<br>&gt;&gt;&gt; hex(id(type(np.sum([1, 2, 3], dtype=np.int32))))<br>&#39;0x9599a0&#39;<br>&gt;&gt;&gt; hex(id(np.int32))<br>&#39;0x959a80&#39;<br>




<br>So, the type from the sum() reports itself as a numpy int, but its memory address is different from the memory address for np.int32.<br><br></blockquote></div></div><div><br>One of them is probably a long, print out the typecode, dtype.char.<br>


<br>Chuck <br></div></div><br>
<br></blockquote><div><br>Good intuition, but odd result...<br><br>&gt;&gt;&gt; import numpy as np<br>&gt;&gt;&gt; a = np.sum([1, 2, 3], dtype=np.int32)<br>&gt;&gt;&gt; b = np.int32(6)<br>&gt;&gt;&gt; type(a)<br>&lt;type &#39;numpy.int32&#39;&gt;<br>

&gt;&gt;&gt; type(b)<br>&lt;type &#39;numpy.int32&#39;&gt;<br>&gt;&gt;&gt; a.dtype.char<br>&#39;i&#39;<br>&gt;&gt;&gt; b.dtype.char<br>&#39;l&#39;<br><br>So, the standard np.int32 is getting listed as a long somehow?  To further investigate:<br>

<br>&gt;&gt;&gt; a.dtype.itemsize<br>4<br>&gt;&gt;&gt; b.dtype.itemsize<br>4<br><br>So, at least the sizes are right.<br><br>Ben Root<br></div></div>