Splitting Numpy array based on value

后端 未结 6 1932
我寻月下人不归
我寻月下人不归 2020-12-17 19:05

Suppose I have this NumPy array:

a = np.array([0, 3, 5, 5, 0, 10, 14, 15, 56, 0, 12, 23, 45, 23, 12, 45, 
              0, 1, 0, 2, 3, 4, 0, 0 ,0])
<         


        
6条回答
  •  天命终不由人
    2020-12-17 19:28

    No need for numpy, this lambda function works on a list, but we can convert your numpy array to and from a list on the way in and out:

    cut = lambda x: [j for j in [cut(x[:x.index(0)])]+cut(x[x.index(0)+1:]) if j] if x.count(0) else x
    
    numpy.array(cut(list(a)))
    
    # array([[3, 5, 5], [10, 14, 15, 56], [12, 23, 45, 23, 12, 45], [1], [2, 3, 4]], dtype=object)
    

提交回复
热议问题