擅长:python、mysql、java
<h2>代码</h2>
<p>您可以使用:</p>
<pre><code>(A == 0).cumsum()[A > 0]
# array([0, 0, 1, 2, 2, 5])
</code></pre>
<p>或者:</p>
^{pr2}$
<p>如果<code>A</code>是bool数组。在</p>
<h2>解释</h2>
<p><code>A == 0</code>是一个布尔数组,对于每个<code>0</code>,它是<code>True</code>:</p>
<pre><code>>>> import numpy as np
>>> A = np.array([1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0])
>>> A == 0
array([False, False, True, False, True, False, False, True, True,
True, False, True, True, True, True], dtype=bool)
</code></pre>
<p>您可以使用<a href="https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.cumsum.html" rel="nofollow noreferrer">^{<cd5>}</a>来计算<code>True</code>的数目:</p>
<pre><code>>>> (A == 0).cumsum()
array([0, 0, 1, 1, 2, 2, 2, 3, 4, 5, 5, 6, 7, 8, 9])
</code></pre>
<p>您只需要<code>A > 0</code>中的值:</p>
<pre><code>>>> (A == 0).cumsum()[A > 0]
array([0, 0, 1, 2, 2, 5])
</code></pre>
<p>完成了!在</p>