Moje dane wygląda mniej więcej tak:Policz liczbę klastrów niezerowych wartości w Pythonie?
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]
Zasadniczo istnieje grono zer przed numerami niezerowych i szukam policzyć liczbę grup numerów niezerowych oddzielonych zerami. Na przykład dane powyżej, istnieją 3 grupy danych niezerowych więc kod powinien powrócić 3.
- liczbę zer między grupami spoza zer jest zmienne
Wszelkie dobre sposoby turystyczne to w python? (Także z użyciem Pandy i Numpy w celu analizowania danych)
jeśli miał w serii (lub dataframe), cou ld do: '((ser! = 0) & (ser.shift() == 0) .sum()' – JohnE
Powiązane: [Wyodrębnij niezerowe bloki z tablicy] (http://stackoverflow.com/ pytania/31544129/extract-separate-non-zero-blocks-from-array) i [Jak wycinać listę w ciągłe grupy niezerowych liczb całkowitych w Pythonie] (http://stackoverflow.com/questions/6760871/how- to-slice-list-do-sąsiadujących-grup-niezerowych-liczb całkowitych-w-pythonach) – user2314737