It&#39;s ok to have two different dtypes (in the sense that &quot;d1 is not d2&quot;) such that they represent the same kind of data (in the sense that d1 == d2).<br><br>However I think your very first test should have returned True (for what it&#39;s worth, it returns true with 1.5.1 on Windows 32 bit).<br>
<br>-=- Olivier<br><br><div class="gmail_quote">2011/6/10 Benjamin Root <span dir="ltr">&lt;<a href="mailto:ben.root@ou.edu">ben.root@ou.edu</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;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>Weirdness...<br>Ben Root<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>
<br></blockquote></div><br>