擅长:python、mysql、java
<p>您可以使用简单的<a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.cumsum.html" rel="nofollow">^{<cd1>}</a>-</p>
<pre><code>import numpy as np
# Form zeros array of same size as input array and
# place ones at positions where intervals change
A1 = np.zeros_like(A)
A1[breaks[1:-1]] = 1
# Perform cumsum along it to create a staircase like array, as the final output
out = A1.cumsum()
</code></pre>
<p>样本运行-</p>
^{pr2}$
<hr/>
<p>如果您想从<code>A</code>获得这些子向量的平均值,可以使用<a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.bincount.html" rel="nofollow">^{<cd3>}</a>-</p>
<pre><code>mean_vals = np.bincount(out, weights=A)/np.bincount(out)
</code></pre>
<p>如果您希望扩展此功能并使用一个<em>自定义</em>函数,那么您可能需要研究一下MATLAB的<a href="http://www.mathworks.com/help/matlab/ref/accumarray.html" rel="nofollow">^{<cd4>}</a>等价于<code>Python/Numpy</code>:<code>accum</code>,其源代码可用<a href="https://github.com/ml31415/accumarray/blob/master/accumarray.py" rel="nofollow">here</a>。在</p>