Ich neige dazu, numpige Arrays (Matrizen) mit eckigen Klammern zu indizieren, aber ich habe bemerkt, dass ich, wenn ich ein Array (Matrix) zerschneiden möchte, die Komma-Notation verwenden muss. Warum ist das? Zum Beispiel
%Vor%Dies:
%Vor% bedeutet "nimm alle Indizes von x
entlang der ersten Achse, aber nur Index 1 entlang der zweiten Achse".
Dies:
%Vor% bedeutet "nimm alle Indizes von x
entlang der ersten Achse (also alle von x
), dann nimm Index 1 entlang der ersten Achse des Ergebnisses". Sie wenden das 1
auf die falsche Achse an.
x[1][2]
und x[1, 2]
sind nur äquivalent, da die Indexierung eines Arrays mit einer Ganzzahl alle verbleibenden Achsen in Richtung der Vorderseite der Form verschiebt, sodass die erste Achse von x[1]
die zweite Achse von x
ist. Dies verallgemeinert sich überhaupt nicht; Sie sollten fast immer Kommas anstelle von mehreren Indexierungsschritten verwenden.
Wenn Sie beim Verschieben der Multidimension des Arrays weniger Indizes als die Anzahl der Achsen angeben, werden die fehlenden Indizes als vollständige Segmente betrachtet.
Wenn Sie also im Wesentlichen tun, wenn Sie x[:][1]
aufrufen, ist x[:,:][1,:]
Daher wird x[:,:]
nur x selbst zurückgeben.