import numpy as np
l = [-1, 1, 2, 3, -1, 1, 2, -1, 3, 4]
header_position = list(filter(lambda x: l[x] == -1, range(len(l))))
for a in np.split(l, header_position):
print(a)

-1だとヘッダだとする
ヘッダ位置のリストをsplitの第2引数に渡すと、その場所でsplitしたarrayのlistが得られる
先頭のは要らないので捨てる