擅长:python、mysql、java
<p>您可以使用<a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.unique.html" rel="nofollow">^{<cd1>}</a>为第一列中的每个元素获取一个ID数组,然后使用<a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.bincount.html" rel="nofollow">^{<cd2>}</a>根据ID对第二列元素执行<em>累积</em></p>
<pre><code>In [140]: A
Out[140]:
array([[25, 1],
[37, 3],
[37, 2],
[47, 1],
[59, 2]])
In [141]: unqA,idx = np.unique(A[:,0],return_inverse=True)
In [142]: np.column_stack((unqA,np.bincount(idx,A[:,1])))
Out[142]:
array([[ 25., 1.],
[ 37., 5.],
[ 47., 1.],
[ 59., 2.]])
</code></pre>
<hr/>
<p>您可以使用<a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.diff.html" rel="nofollow">^{<cd4>}</a>和{a4}的组合来避免{<cd1>},这可能会有所帮助,因为{<cd1>}也会在内部进行排序,在这种情况下不需要这样做,因为输入数据已经被排序了。实现应该是这样的-</p>
^{pr2}$