[x[x != 0] for x in np.split(a, np.where(a == 0)[0]) if len(x[x != 0])]
[array([3, 5, 5]), array([10, 14, 15, 56]), array([12, 23, 45, 23, 12, 45]),
    array([1]), array([2, 3, 4])]
Splitting Numpy array based on value