<h3 dir="auto">Describe the issue:</h3>
<p dir="auto">The multiplication of the python int and the numpy uint64 should return a numpy int64 type, but it is numpy float64 type.</p>
<h3 dir="auto">Reproduce the code example:</h3>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="import numpy as np
assert type(1*np.uint8(1)) == np.int64
assert type(1*np.uint16(1)) == np.int64
assert type(1*np.uint32(1)) == np.int64
assert type(1*np.uint64(1)) == np.float64 # this makes for me no sense... is there a reason for this?"><pre class="notranslate"><span class="pl-k">import</span> <span class="pl-s1">numpy</span> <span class="pl-k">as</span> <span class="pl-s1">np</span>
<span class="pl-k">assert</span> <span class="pl-en">type</span>(<span class="pl-c1">1</span><span class="pl-c1">*</span><span class="pl-s1">np</span>.<span class="pl-en">uint8</span>(<span class="pl-c1">1</span>)) <span class="pl-c1">==</span> <span class="pl-s1">np</span>.<span class="pl-s1">int64</span>
<span class="pl-k">assert</span> <span class="pl-en">type</span>(<span class="pl-c1">1</span><span class="pl-c1">*</span><span class="pl-s1">np</span>.<span class="pl-en">uint16</span>(<span class="pl-c1">1</span>)) <span class="pl-c1">==</span> <span class="pl-s1">np</span>.<span class="pl-s1">int64</span>
<span class="pl-k">assert</span> <span class="pl-en">type</span>(<span class="pl-c1">1</span><span class="pl-c1">*</span><span class="pl-s1">np</span>.<span class="pl-en">uint32</span>(<span class="pl-c1">1</span>)) <span class="pl-c1">==</span> <span class="pl-s1">np</span>.<span class="pl-s1">int64</span>
<span class="pl-k">assert</span> <span class="pl-en">type</span>(<span class="pl-c1">1</span><span class="pl-c1">*</span><span class="pl-s1">np</span>.<span class="pl-en">uint64</span>(<span class="pl-c1">1</span>)) <span class="pl-c1">==</span> <span class="pl-s1">np</span>.<span class="pl-s1">float64</span> <span class="pl-c"># this makes for me no sense... is there a reason for this?</span></pre></div>
<h3 dir="auto">Error message:</h3>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="No errors, but wrong return type only."><pre class="notranslate">No errors, but wrong <span class="pl-k">return</span> <span class="pl-c1">type</span> only.</pre></div>
<h3 dir="auto">NumPy/Python version information:</h3>
<p dir="auto"><code class="notranslate">sys.version == '3.10.4 (main, Mar 23 2022, 23:05:40) [GCC 11.2.0]'</code><br>
<code class="notranslate">np.__version__ == '1.21.3'</code></p>
<p dir="auto">I was doing some testing using unsigned and signed integers with NumPy 1.20.3, and found out that when you multiply them with each other, it results in a 64-bit float.<br>
Same goes for addition/subtraction.<br>
As far as I know, this was not the case for earlier NumPy versions (as currently many parts of my code no longer work that previously worked just fine with this).<br>
To me, it sounds a bit strange that multiplying two integers with each other results in a float.</p>
<h3 dir="auto">Reproducing code example:</h3>

<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="import numpy as np
print(type(np.uint(1)*1))
&gt;&gt;&gt; &lt;class 'numpy.float64'&gt;"><pre class="notranslate"><span class="pl-k">import</span> <span class="pl-s1">numpy</span> <span class="pl-k">as</span> <span class="pl-s1">np</span>
<span class="pl-en">print</span>(<span class="pl-en">type</span>(<span class="pl-s1">np</span>.<span class="pl-en">uint</span>(<span class="pl-c1">1</span>)<span class="pl-c1">*</span><span class="pl-c1">1</span>))
<span class="pl-c1">&gt;&gt;</span><span class="pl-c1">&gt;</span> <span class="pl-c1">&lt;</span><span class="pl-k">class</span> <span class="pl-s">'numpy.float64'</span><span class="pl-c1">&gt;</span></pre></div>

<h3 dir="auto">NumPy/Python version information:</h3>
<p dir="auto">Python: 3.8.8<br>
NumPy: 1.20.3</p>