假设我有以下列表:
a = [True, True, True, False, False, False, False, True, True]
Run Code Online (Sandbox Code Playgroud)
怎样才能让他们最好只要么返回分组0,3,7或分组像下面这样?
[True, True, True]
[False, False, False, False]
[True, True]
Run Code Online (Sandbox Code Playgroud)
背景:我试图在我的 NumPy 数组中找到平台,虽然将导数设置为零是一个好的开始,但我仍然需要将数组排序为块。我认为这基本上归结为上述问题。
我查找了 NumPy 和 itertools(试图从问题NumPy grouping using itertools.groupby performance 中获得解决方案)但我没有成功。我想人们可能会使用itertools.takewhile和 filtfalse的组合(请参阅此处的文档),但我对此并不了解。或者也许我只是想得太复杂了。
我有以下多索引数据框:
from io import StringIO
import pandas as pd
datastring = StringIO("""File,no,runtime,value1,value2
A,0, 0,12,34
A,0, 1,13,34
A,0, 2,23,34
A,1, 6,23,38
A,1, 7,22,38
B,0,17,15,35
B,0,18,17,35
C,0,34,23,32
C,0,35,21,32
""")
df = pd.read_csv(datastring, sep=',')
df.set_index(['File','no',df.index], inplace=True)
>> df
runtime value1 value2
File no
A 0 0 0 12 34
1 1 13 34
2 2 23 34
1 3 6 23 38
4 7 22 38
B 0 5 17 15 35
6 18 17 35
C 0 7 34 23 32
8 …Run Code Online (Sandbox Code Playgroud)