2016-11-30 6 views
1

Ich habe eine ndarray mit folgendem Inhalt:Findet das erste Vorkommen von Index und halten diese Zeile

[0, 1] 
[0, 5] 
[1, 7] 
[2, 9] 
[2, 4] 
[2, 4] 
[3, 8] 
[4, 2] 
[4, 7] 

Jetzt würde ich nur die erste Zeile halten mögen, wenn das erste Element das gleiche für mehrere Zeilen ist. Ergäbe sich in:

[0, 1] 
[1, 7] 
[2, 9] 
[3, 8] 
[4, 2] 

Wie kann ich das erreichen mit numpy?

+2

Schauen Sie in 'np.unique (.... return_index)'. – Divakar

Antwort

1

Eingangsdaten als Gegeben:

x = np.array([ 
    [0, 1], 
    [0, 5], 
    [1, 7], 
    [2, 9], 
    [2, 4], 
    [2, 4], 
    [3, 8], 
    [4, 2], 
    [4, 7], 
]) 

Dann könnten Sie numpy.unique mit dem return_index Satz auf true verwenden (wie @divakar im commend erwähnt), um die einzigartige Indizes der ersten Elemente zu finden.

idx = numpyp.unique(x[:,0], return_index=True)[1] 

Dann können Sie Zugriff auf sie genauso:

x[idx] 

Hoffnung, das hilft.

Verwandte Themen