擅长:python、mysql、java
<p>您可以对ufunc使用<a href="https://docs.scipy.org/doc/numpy/reference/ufuncs.html#optional-keyword-arguments" rel="nofollow noreferrer">^{<cd1>}</a>参数,例如<a href="https://docs.scipy.org/doc/numpy/reference/generated/numpy.true_divide.html" rel="nofollow noreferrer">^{<cd2>}</a>:</p>
<pre><code>np.true_divide(A, B, where=(A!=0) | (B!=0))
</code></pre>
<p>如果没有负值(如注释中所述)和每个元素的<code>A >= B</code>(如问题中所述),可以将其简化为:</p>
^{2}$
<p>因为<code>A[i, j] == 0</code>意味着{<cd5>}。在</p>
<hr/>
<p>例如:</p>
<pre><code>import numpy as np
A = np.random.randint(0, 3, (4, 4))
B = np.random.randint(0, 3, (4, 4))
print(A)
print(B)
print(np.true_divide(A, B, where=(A!=0) | (B!=0)))
[[1 0 2 1]
[1 0 0 0]
[2 1 0 0]
[2 2 0 2]]
[[1 0 1 1]
[2 2 1 2]
[2 1 0 1]
[2 0 1 2]]
[[ 1. 0. 2. 1. ]
[ 0.5 0. 0. 0. ]
[ 1. 1. 0. 0. ]
[ 1. inf 0. 1. ]]
</code></pre>
<hr/>
<p>另一种方法:只需在除法后替换<code>nan</code>s:</p>
<pre><code>C = A / B # may print warnings, suppress them with np.seterrstate if you want
C[np.isnan(C)] = 0
</code></pre>