<p dir="auto">This code</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="import numpy
a = numpy.zeros(1, dtype = numpy.uint64)[0]
print(type(a))
i = 1
print(type(i))
a += i
print(type(a))"><pre class="notranslate"><code class="notranslate">import numpy
a = numpy.zeros(1, dtype = numpy.uint64)[0]
print(type(a))
i = 1
print(type(i))
a += i
print(type(a))
</code></pre></div>
<p dir="auto">prints</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&lt;class 'numpy.uint64'&gt;
&lt;class 'int'&gt;
&lt;class 'numpy.float64'&gt;"><pre class="notranslate"><code class="notranslate">&lt;class 'numpy.uint64'&gt;
&lt;class 'int'&gt;
&lt;class 'numpy.float64'&gt;
</code></pre></div>
<p dir="auto">which was a big surprise for me. Why would adding an integer to uint64 result in a floating point value?</p>
<p dir="auto">We have these financial functions that are exported in the main <code class="notranslate">numpy</code> namespace, and are really out of place:<br>
<a href="http://docs.scipy.org/doc/numpy/reference/routines.financial.html" rel="nofollow">http://docs.scipy.org/doc/numpy/reference/routines.financial.html</a></p>
<p dir="auto">Also:</p>
<ul dir="auto">
<li>They have terrible names (even if they weren't in the main namespace, but especially so given that they are)</li>
<li>There are multiple documented, but unimplemented, functions here. WTF.</li>
</ul>
<p dir="auto">Let's move them to numpy.financial (currently they're also in <code class="notranslate">numpy.lib.financial</code>, but the <code class="notranslate">.lib.</code> part is just noise IMO) with better names and deprecate the current names.</p>