gpt4 book ai didi

python - 具有开始和结束条件的序列的长度(计数)Python

转载 作者:行者123 更新时间:2023-12-03 09:27:04 28 4
gpt4 key购买 nike

我有一些加速度数据,我试图计算给定一组条件的序列长度。在这种情况下,我想计算加速度 moves > 2.78 时序列的长度然后回落至 0 以下.
一个例子是

[-1.1, -1, 0, 1.2, 1.8, 2, 2.88, 2.86, 2.53, 1.98, 1.21, 0.89, 0.11, -0.21]
这里的返回结果将是 7 (2.88, 2.86, 2.53, 1.98, 1.21, 0.89, 0.11)
我以前这样做是为了使用以下代码确定严格> 2.78 的序列长度。我需要以此为基础来提供使用 0 作为端点的长度。
def get_Accel_lengths( array ) :
s = ''.join( ['0' if i < 2.78 else '1' for i in resultsQ4['AccelInt']] )
parts = s.split('0')
return [len(p) for p in parts if len(p) > 0]
Q4Accel = get_Accel_lengths(resultsQ4['AccelInt'])
Q4Accel = pd.DataFrame(Q4Accel)
Q4Accel
使用上面的示例,此代码的结果将是 2 ( 2.88 , 2.86 )

最佳答案

使用 itertools.dropwhiletakewhile :

l = [-1.1, -1, 0, 1.2, 1.8, 2, 2.88, 2.86, 2.53, 1.98, 1.21, 0.89, 0.11, -0.21]
list(takewhile(lambda x: x > 0, dropwhile(lambda x: x < 2.78, l)))
输出:
[2.88, 2.86, 2.53, 1.98, 1.21, 0.89, 0.11]
或者只是为了得到 len :
sum(1 for _ in takewhile(lambda x: x > 0, dropwhile(lambda x: x < 2.78,  l)))
# 7

关于python - 具有开始和结束条件的序列的长度(计数)Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62827146/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com