2017-01-31 15 views
2

Ich habe ein numpy Array, das eine Reihe von Indizes speichert, die ich brauche, um auf ein anderes numpy-Array zuzugreifen.Wie auf numpy Array mit einer Reihe von Indizes in einem anderen numpy Array zugreifen?

Ich habe versucht, eine for Schleife zu verwenden, aber es funktioniert nicht wie ich erwartet habe.

Die Situation ist so:

>>> a 
array([[1, 2], 
     [3, 4]]) 
>>> c 
array([[0, 0], 
     [0, 1]]) 
>>> a[c[0]] 
array([[1, 2], 
     [1, 2]]) 
>>> a[0,0]   # the result I want 
1 

Über eine vereinfachte Version meiner eigentlichen Code ist, wo die c Array ist viel größer, damit ich eine for Schleife verwenden, um jeden Index zu erhalten.

+1

scheint sehr relevant - http://stackoverflow.com/questions/41802319 – Divakar

Antwort

2

es Konvertieren in ein tuple:

>>> a[tuple(c[0])] 
1 

Da list und array Indizes advanced indexing auslösen. tuple s sind (meist) einfache Schnitte.

1

Index a mit Spalten von c durch die erste Spalte als Zeilenindex und der zweite als Spaltenindex übergeben:

In [23]: a[c[:,0], c[:,1]] 
Out[23]: array([1, 2]) 
Verwandte Themen