2017-02-03 91 views

回答

3

您可以使用np.unique得到分離指數,然後用np.split實際分裂 -

np.split(a, np.unique(a[:,0], return_index=1)[1][1:],axis=0) 

或者,切片和使用np.flatnonzero -

np.split(a, np.flatnonzero(a[1:,0] != a[:-1,0])+1,axis=0) 

採樣運行 -

In [63]: a 
Out[63]: 
array([[569, 897], 
     [570, 898], 
     [570, 900], 
     [571, 901], 
     [571, 905], 
     [572, 906]]) 

In [64]: out = np.split(a, np.flatnonzero(a[1:,0] != a[:-1,0])+1,axis=0) 

In [65]: out[0] 
Out[65]: array([[569, 897]]) 

In [66]: out[1] 
Out[66]: 
array([[570, 898], 
     [570, 900]]) 

In [67]: out[2] 
Out[67]: 
array([[571, 901], 
     [571, 905]]) 

In [68]: out[3] 
Out[68]: array([[572, 906]]) 
+0

你能提供一個你提出的方法的例子嗎?它不是按我想要的那樣工作。 – hulkinBrain

+0

@hulkinBrain嗯,我假設第一列進行排序,我是否正確地假設?它應該工作,否則你可以提供這樣的樣本? – Divakar

+0

是的,第一列是排序。 – hulkinBrain

相關問題