Wie Entferne ich die ersten und letzten Zeilen und Spalten aus einem 2D-numpy-array?
Ich würde gerne wissen, wie zu entfernen die ersten und letzten Zeilen und Spalten aus einem 2D-array numpy. Zum Beispiel, sagen wir, wir haben ein (N+1) x (N+1)
matrix genannt H
dann in MATLAB/Octave, der code, den ich verwenden würde, wäre:
Hsub = H(2:N,2:N);
Was ist der entsprechende code in Numpy? Ich dachte, dass np.Umformen
könnte tun, was ich will, aber ich bin mir nicht sicher, wie es zu entfernen nur das Ziel Zeilen, wie ich denke, wenn ich Umformen, um eine (N-1) x (N-1)
matrix, es werde entfernen Sie die letzten zwei Zeilen und Spalten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie über dieses?
Den
1:-1
Bereich bedeutet, dass wir Zugriff auf Elemente aus der zweiten index, oder1
, und wir gehen bis zum vorletzten index, wie von der-1
für eine dimension. Wir tun dies für beide Dimensionen unabhängig voneinander. Wenn Sie dies tun, unabhängig für beide Dimensionen, das Ergebnis ist die Schnittmenge davon, wie Sie Zugriff auf jede dimension, die im wesentlichen abhacken der ersten Zeile, erste Spalte, Letzte Zeile und Letzte Spalte.Denken Sie daran, das Ende index exklusive, so dass, wenn wir haben
0:3
wir beispielsweise nur die ersten drei Elemente einer dimension, nicht vier.Auch negative Indizes bedeuten, dass wir Zugriff auf das array aus der Ende.
-1
dem letzten Wert zugreifen, die in einer bestimmten dimension, aber wegen der Exklusivität, bekommen wir bis zum vorletzten element nicht das Letzte element. Im wesentlichen ist dies dasselbe wie:... aber mit negativen Indizes ist viel eleganter. Sie haben auch nicht die Anzahl der Zeilen und Spalten zu extrahieren, was Sie brauchen. Die obige syntax ist die dimension Agnostiker. Allerdings müssen Sie sicherstellen, dass die matrix mindestens 3 x 3, oder erhalten Sie eine Fehlermeldung.
Kleinen bonus
In MATLAB /Octave, können Sie erreichen die gleiche Sache ohne die mithilfe der Dimensionen:
Den
end
Schlüsselwort mit Bezug auf die Indizierung Mittel, um das Letzte element für einen bestimmten dimension.Beispiel verwenden
Hier ist ein Beispiel (IPython):
Wie Sie sehen können, die erste Zeile, erste Spalte, Letzte Zeile und Letzte Spalte wurde entfernt aus dem source-matrix
H
und der Rest wurde in der Ausgabe-matrixHsub
.