Python-numpy 数组中每个值的最大连续计数

问题描述 投票:0回答:1

给定一个一维numpy数组,目标是计算特定连续值的最大数量,例如,给定一个数组

arr

arr=np.array([1,1,1,2,2,3,4,4,4,4,4,2,4,4])

我想返回每个数字的最大连续值的数量。结果是一个二维数组,第一列是每个数字,第二列是每个数字的最大连续计数。

result=np.array([[1,3],[2,2],[3,1],[4,5]])
python arrays numpy count
1个回答
0
投票

很容易做到:

s = pd.Series(arr)
out = (s.groupby(s.ne(s.shift()).cumsum(), sort=False)
        .agg({'first', 'size'})
        .groupby('first', sort=False)['size'].max()
        .reset_index().to_numpy().tolist()
      )

输出:

[[1, 3], [2, 2], [3, 1], [4, 5]]
© www.soinside.com 2019 - 2024. All rights reserved.