Skip to main content
 首页 » 编程设计

python之连续出现的项目数

2025年05月04日17myhome

我有以下数据文件。

 1 3 
 2 6 
 3 7 
 4 6 
 5 8 
 6 4 
 7 5 
 8 9 
 9 7 
 10 2 
 11 3 
 12 5 
 13 3 

我的目标是计算第 2 列中至少连续出现 3 次的等于或大于 5 的项目。我已经能够弄清楚计数部分而不是继承部分。

因此,我希望此数据文件的输出为 2,因为在第 2 列中有 2 个字符串 (6,7,6,8) 和 (5,9,7),其中数字等于和大于 5 至少连续出现 3 次。

import numpy as np 
data=np.loadtxt('/Users/Hrihaan/Desktop/DataF.txt') 
z=data[:,1] 
count = len([i for i in z if i >= 5]) 
print(count) 

如有任何帮助,我们将不胜感激。

请您参考如下方法:

方法 #1: 获取每个有效组的开始、停止索引并获取它们的计数 -

mask = np.concatenate(([False], ar>=5, [False] )) 
idx = np.flatnonzero( np.concatenate(([False], mask[1:] != mask[:-1], [False] )) ) 
count = ((idx[1::2]-idx[::2])>=3).sum() 

方法 #2: 使用 1D 卷积 -

mask = np.convolve(ar>=5,[1]*3)>=3 
out = (mask[1:] > mask[:-1]).sum()