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 ...
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)
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.