857
30.5
Arrays verändern
Bei mehrdimensionalen Arrays gibt es noch weitereglichkeiten, Bereiche zu bilden. Die
Spalten eines zweidimensionalen Arrays erhalten Sie auf folgende Weise:
Das Ergebnis dieser Operation ist nicht etwa ein Spaltenvektor. (Ein Spaltenvektor ist ein
zweidimensionales Array, dessen Zeilen jeweils nur ein Element enthalten.) Das Ergebnis
ist vielmehr ein eindimensionales Array, das aus jeder Zeile das erste Element enthält. Die
Elemente der zweiten Spalte erhalten Sie so:
30.5 Arrays verändern
Arrays besitzen Methoden, die eine Sicht mit neuer Form konstruieren: reshape() und
ravel().
Bei einem Aufruf der Methode
reshape() übergeben Sie als Argumente natürliche Zahlen,
die die Form der gewünschten Sicht beschreiben. Beispiel:
Beachten Sie, dass
b kein unabhängiges Objekt ist, sondern eine Sicht (view) auf a. Diese
Sicht bleibt immer mit dem Original-Array verbunden. Wenn
a geändert wird, ändert sich
auch die Sicht.
>>> a
array([100, 1, 2, 3, 4, 5, 6, 7, 8])
Wenn Sie ein Array benötigen, das vom Original unabhängig ist, benutzen Sie die
Methode
copy(). Beispiel:
>>> b = a.copy()[:4]
>>> a = np.array([[1, 5, 7], [2, 0, 9]])
>>> a
array([[1, 5, 7],
[2, 0, 9]])
>>> a[:,0] # erste Spalte
array([1, 2])
>>> a[:,1] # zweite Spalte
array([5, 0])
>>> a = np.arange(12)
>>> print(a)
[0 1 2 3 4 5 6 7 8 9 10 11 12]
>>> b = a.reshape(3, 4) # 3 Zeilen und 4 Spalten
>>> print(b)
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
Kapitel 30
Rechnen mit NumPy
858
Die Methode ravel() liefert eine »verflachte« Sicht, ein eindimensionales Array, in dem
alle Elemente des Original-Arrays hintereinander geschrieben sind. Beispiel:
Die Methode
resize() gibt nichts zurück, aber sie verändert das Array. Die Argumente
sind Zahlen, die die gewünschte Form beschreiben. Wenn die neue Form größer ist, werden
Nullen ergänzt:
Zweidimensionale Arrays werden zur Darstellung von Matrizen und Vektoren verwendet.
Die Methode
transpose() liefert die transponierte Matrix als Sicht. Die transponierte (oder
gespiegelte) Matrix entsteht durch Vertauschen von Zeilen und Spalten. Arrays besitzen
auch das Attribut
T, das ebenfalls eine Sicht auf die transponierte Matrix enthält. Beispiel:
Ein transponierter Zeilenvektor ist ein Spaltenvektor mit den gleichen Elementen.
>>> a = np.array([[10, 20],
[30, 40]])
>>> a.ravel()
array([10, 20, 30, 40])
>>> a = np.array([1, 3, 5])
>>> a.resize(5, 5) # Methodenaufruf
>>> a
array([[1, 3, 5, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]])
>>> a = np.arange(9).reshape(3, 3)
>>> print(a)
[[0 1 2]
[3 4 5]
[6 7 8]]
>>> print(a.T) # transponierte Matrix
[[0 3 6]
[1 4 7]
[2 5 8]]
>>> v = np.array([[1, 2, 3]])
>>> v.T
array([[1],
[2],
[3]])

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.