Ich denke, ich verstehe die Indizierung von Array in Python/numpy richtig. Aber heute traf ich ein Problem wie folgt:Python Numpy Array Indizierung
Ich habe eine 6-d-Array z. A
und A.shape = (11,1,9,1,5,7)
. Dann benutze ich die Indizierung wie folgt:
B = A[:,0,0,0,[3,4,2],0]
und B.shape = (11,3)
wie erwartet;
C = A[:,0,0,0,[3,4,2],:]
und C.shape = (11,3,7)
wie erwartet;
Aber wenn ich sage:
D = A[:,0,:,0,[3,4,2],0]
und D.shape
sollte (11,9,3)
sein, wie ich erwarten kann jedoch zurück Python die D.shape = (3, 11, 9)
.
Und ich bin wirklich verwirrt über die Form des Arrays D
.
Gibt es jemanden, der mir eine kurze Erklärung geben kann? Vielen Dank!
Es gibt einen Abschnitt in der 'basic & advanced' Indizierung Dokumente über Scheiben und Listen zu mischen. Es gibt einige Mehrdeutigkeiten und "numpy" entscheidet sich, die Scheibenmaße zuletzt zu setzen. Dieses Verhalten wurde auch in früheren SO-Fragen diskutiert. – hpaulj
Mögliches Duplikat von [Slice-Notation erklären] (https://stackoverflow.com/questions/509211/explain-slice-notation) – polka
Nein, das ist nicht nur eine einfache Slice-Frage. Es ist etwas subtiler. – hpaulj