擅长:python、mysql、java
<p>您可以使用<code>np.select</code>来屏蔽<code>(1,0)</code>和<code>(0,1)</code>。然后使用<a href="https://stackoverflow.com/questions/60638280/sticky-cumsum-cumprod-numpy">this answer</a>用前面的值填充<code>nan</code>:</p>
<pre><code>arr = np.select((a==1, b==1), (1,0), np.nan)
# inspired by the linked question
mask = np.isnan(arr)
idx = np.where(~mask,np.arange(len(mask)), 0)
np.maximum.accumulate(idx,out=idx)
out = arr[idx]
</code></pre>
<p>输出:</p>
<pre><code>array([1., 1., 0., 0., 1., 1.])
</code></pre>