我有以下数组
a = [1, 2, 3, 0, 0, 0, 0, 0, 0, 4, 5, 6, 0, 0, 0, 0, 9, 8, 7,0,10,11]
Run Code Online (Sandbox Code Playgroud)
我希望找到连续值为零的数组的开始和结束索引,对于输出上方的数组,如下所示
[3,8],[12,15],[19]
Run Code Online (Sandbox Code Playgroud)
我想尽可能高效地做到这一点.
我的数据看起来像这样:
a=[0,0,0,0,0,0,10,15,16,12,11,9,10,0,0,0,0,0,6,9,3,7,5,4,0,0,0,0,0,0,4,3,9,7,1]
Run Code Online (Sandbox Code Playgroud)
基本上,在非零数字之前有一堆零,我想要计算由零分隔的非零数字组的数量.在上面的示例数据中,有3组非零数据,因此代码应返回3.
有什么好办法在python中做到这一点?(还使用Pandas和Numpy来帮助解析数据)
似乎无法在网上找到这个线索,也无法自己解决这个问题:
我将如何切片列表,以便返回连续的非零整数切片列表.即:
data = [3, 7, 4, 0, 1, 3, 7]
Run Code Online (Sandbox Code Playgroud)
我想生产:
slices = [[3, 7, 4], [1, 3, 7]]
Run Code Online (Sandbox Code Playgroud)
我已经尝试了各种迭代列表的方法,一直倾向于生成器让我知道连续组的开始和停止时,通过测试前后是否有0,但后来我有点难过.