Hat NumPy eine Inverse von unravel_index ()?

8

numpy.unravel_index () nimmt eine Form und einen flachen Index in ein Array und gibt das Tupel zurück, das diesen Index im Array darstellt. Gibt es eine Umkehrung? Ich kann es von Hand berechnen, aber es scheint, dass es irgendwo eine eingebaute Funktion sein muss ...

    
D0SBoots 06.11.2010, 18:22
quelle

4 Antworten

7

Seit numpy 1.6.0 (Mai 2011) gibt es eine eingebaute NumPy Funktion ravel_multi_index

  

Konvertiert ein Tupel von Indexarrays in ein Array von flachen Indizes, wobei Grenzmodi auf den Multiindex angewendet werden.

(Dies wird auch in einem Kommentar von Benutzer Bi Rico erwähnt, sollte aber wirklich als Antwort erscheinen)

    
YXD 30.09.2014, 18:18
quelle
3

Das funktioniert:

%Vor%     
luispedro 24.11.2010 20:04
quelle
2

Die Antwort liegt in numpy.darray.trides. Siehe Ссылка

    
D0SBoots 06.11.2010 19:00
quelle
1

Es ist kein eingebauter Befehl, aber ich habe immer das folgende Snippet verwendet, vorausgesetzt, numpy's Standard-Zeilen-Indexierung wird verwendet:

%Vor%

für Fortan-ähnliche (Spalten-große) Indizierung, die Indizes müssen nur getauscht werden:

%Vor%

Im obigen sind index_tuple und a_matrix ein Tupel, das die interessierenden Indizes bzw. die indexierte Matrix enthält. Dies hat nicht das oben genannte Problem, das mit Schritten verbunden ist, wenn Schnitte gemacht werden.

    
Michelle Lynn Gill 19.03.2012 00:51
quelle

Tags und Links