如果差值大于某个值,则保留列表中的连续数字

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

我想将连续值保留在差异大于等于X的列表中假设我有此列表:

list = [1, 50, 70, 75, 100, 110] 

而且我想保留相差> = 20的连续数字:

A = [1, 50, 70, 100] 

为此,我现在正在使用此代码:

distance = 20
A = []
for i in (list):
    if not A or (i - A[-1]) >= distance:
        A.append(i)

还有其他方法可以使用itertools或more-itertools吗?谢谢!

python pandas numpy itertools
1个回答
0
投票

尝试:

>>> arr = np.array([1, 50, 70, 75, 100, 110])
>>> mask = np.diff(arr) >= 20
>>> mask = np.insert(mask, 0, True)
>>> arr[mask]
array([  1,  50,  70, 100])
© www.soinside.com 2019 - 2024. All rights reserved.