增加数字列表的最佳方法是什么

时间:2021-01-21 01:27:07

标签: python numpy

我有一个这样的列表 x=[1,2,2,3,1,2,1,1,2,2] 其中数字是一个正整数,递增 0 或 1,有时重置为 1 , 并需要以增量方式将其转换为 [1,2,2,3,4,5,6,7,8,8] ,其中每个 1 应该是前一个数字加 1 并且相应地跟随 1 增量。有没有一种简单的方法可以通过 numpy 数组等来做到这一点?我尝试使用循环,但我想有一种更简单的方法。

1 个答案:

答案 0 :(得分:2)

你可以使用 np.add.accumulate():

import numpy as np

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

x[1:] += np.add.accumulate(x[:-1]*(x[1:]==1))

print(x)

[1 2 2 3 4 5 6 7 8 8]