2016-08-15 3 views
2

Ich hätte gerne die indexähnliche Funktion: np.searchsorted([1,2,3,4,5], 3) gibt 2 zurück, aber im Fall 2-D-Dimension: np.searchsorted([[1,2],[3,4],[5,6]], [5,6]) sollte zurückgeben 2. Wie kann ich das tun?Suchsortierung für 2D-Array

+0

Machst du wirklich 'search' für' sorted' Standort? Oder ist das eine Art "finden"? Suchen Sie nach Elementen, die sich im Array befinden; oder Platz um neue zu stellen? – hpaulj

+0

Nur 'searchsorted' in der 1. Spalte. Wenn Sie Bedenken hinsichtlich der Bindungen haben, berechnen Sie eine Funktion der Spalten, die das Problem lösen. 'searchsorted' ist nur sinnvoll, wenn die Sortierung des Arrays gut definiert ist. Es ist kein Ersatz für Listenindex oder Suche. – hpaulj

+0

Für mehrere Werte können Sie hier nachsehen: ['Suchen Sie nach den Zeilenindizes mehrerer Werte in einem numply array'] (http://stackoverflow.com/questions/38674027/find-the-row-indexes-of- mehrere-Werte-in-einem-Numpy-Array). – Divakar

Antwort

1

Die documentation for searchsorted zeigt an, dass es nur auf 1-D-Arrays funktioniert.

Sie können die Indexposition in einer Liste finden methds mit eingebaut:

>>> a = [[1,2],[3,4],[5,6]] 
>>> a.index([5,6]) 
2 

>>> a = [[1,2],[5,6],[3,4]] 
>>> print(a.index([5,6])) 
>>> a.sort() 
>>> print(a.index([5,6])) 
1 
2 
+0

Vielen Dank für Ihre Hilfe! –

3
a = np.array([[1,2],[3,4],[5,6]]) 
b = np.array([5,6]) 
np.where(np.all(a==b,axis=1)) 
+0

Danke für Ihre Hilfe! –

Verwandte Themen