擅长:python、mysql、java
<p>有一种可能性:</p>
<pre><code>>>> x = np.array([1, 2, np.nan, 3, np.nan, 4])
... y = np.array([1, np.nan, 2, 5, np.nan, 8])
>>> x = np.ma.masked_array(np.nan_to_num(x), mask=np.isnan(x) & np.isnan(y))
>>> y = np.ma.masked_array(np.nan_to_num(y), mask=x.mask)
>>> (x+y).filled(np.nan)
array([ 2., 2., 2., 8., nan, 12.])
</code></pre>
<p>真正的困难是您似乎希望<code>nan</code>被解释为零,除非某个特定位置的所有值都是<code>nan</code>。这意味着您必须同时查看x和y来确定要替换哪些nan。如果您可以替换所有的nan值,那么您可以简单地执行<code>np.nan_to_num(x) + np.nan_to_num(y)</code>。在</p>