Ich habe ein mehrdimensionales numpy-Array, und ich muss über eine gegebene Dimension hinweg iterieren. Problem ist, ich werde welche Dimension erst zur Laufzeit kennen. Mit anderen Worten, bei einem Array m könnte ich
wollen %Vor%oder ich könnte
wollen %Vor%usw.
Ich stelle mir vor, dass es ein einfaches Feature geben muss, um dies zu schreiben, aber ich kann nicht herausfinden, was es ist / wie es heißen könnte. Irgendwelche Gedanken?
Es gibt viele Möglichkeiten, dies zu tun. Du könntest den richtigen Index mit einer Liste von Slices erstellen oder vielleicht m
s strides ändern. Am einfachsten ist es jedoch, np.swapaxes
zu verwenden:
Lassen Sie axis
die Achse sein, die Sie durchlaufen möchten. m_swapped
ist identisch mit m
, außer dass die Achse axis=1
mit der letzten Achse ( axis=-1
) vertauscht ist.
Jetzt können Sie einfach die letzte Achse durchlaufen:
%Vor% Beachten Sie, dass m_swapped
eine Ansicht, keine Kopie von m
ist. Wenn m_swapped
geändert wird, ändert sich m
.