擅长:python、mysql、java
<p>对于使用numpy版本<;1.6的用户,可以使用:</p>
<pre><code>def result_type(arr1, arr2):
x1 = arr1.flat[0]
x2 = arr2.flat[0]
return (x1 * x2).dtype
def array_operation(arr1, arr2):
return np.empty(arr1.shape, result_type(arr1, arr2))
</code></pre>
<p>这与您发布的代码没有太大区别,尽管我认为<code>arr1.flat[0]</code>比<code>index1 = ([0],) * arr1.ndim; arr1[index1]</code>稍有改进。</p>
<p>对于numpy版本>;=1.6,使用Mike Graham的答案,<a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.result_type.html" rel="nofollow">np.result_type</a></p>