Numpy Python

Numpy Axis erklärt

In Numpy spielen Achsen (engl. axis) eine zentrale Rolle bei der Manipulation von Arrays. Das Konzept der Achsen beschreibt die Dimensionen, entlang derer Operationen wie Summieren, Mittelwertbildung oder Sortieren angewendet werden.


5 Minuten Lesezeit
12 Okt 2024
Numpy Axis erklärt

Was lerne ich in diesem Kurs?

Dieses Tutorial erklärt, was Achsen in Numpy sind, wie sie bei mehrdimensionalen Arrays funktionieren und wie sie bei verschiedenen Operationen genutzt werden können.

1. Was sind Achsen in Numpy?

In Numpy sind Achsen nichts anderes als die Dimensionen eines Arrays. Bei einem eindimensionalen Array gibt es nur eine Achse, bei einem zweidimensionalen Array (z.B. eine Matrix) gibt es zwei Achsen: Zeilen und Spalten. Jede Achse wird durch eine Nummer (0, 1, 2, ...) repräsentiert.

  • Achse 0: Bezieht sich auf die Zeilen in einem Array.
  • Achse 1: Bezieht sich auf die Spalten in einem Array.

2. Achsen in einem eindimensionalen Array (1D-Array)

Ein eindimensionales Array (1D-Array) hat nur eine Achse. Die einzige Achse, die existiert, ist Achse 0.

Beispiel: Ein eindimensionales Array und seine Achse

import numpy as np

# Ein einfaches eindimensionales Array erstellen
array_1d = np.array([1, 2, 3, 4, 5])

# Visualisierung des Arrays
print("Eindimensionales Array:\n", array_1d)

Ausgabe:

Eindimensionales Array:
 [1 2 3 4 5]

In diesem Fall gibt es nur eine Achse (Achse 0), die alle Elemente des Arrays umfasst.

3. Achsen in einem zweidimensionalen Array (2D-Array)

Ein zweidimensionales Array hat zwei Achsen: Achse 0 und Achse 1. Achse 0 ist die Zeilenachse und Achse 1 die Spaltenachse.

Beispiel: Ein 2D-Array und seine Achsen

# Ein zweidimensionales Array erstellen
array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# Visualisierung des Arrays
print("Zweidimensionales Array (Matrix):\n", array_2d)

Ausgabe:

Zweidimensionales Array (Matrix):
 [[1 2 3]
  [4 5 6]
  [7 8 9]]

Hier hat das Array zwei Achsen:

  • Achse 0 (Zeilenachse): 1, 4, 7; 2, 5, 8; 3, 6, 9.
  • Achse 1 (Spaltenachse): 1, 2, 3; 4, 5, 6; 7, 8, 9.

4. Achsen in einem dreidimensionalen Array (3D-Array)

Ein dreidimensionales Array hat drei Achsen: Achse 0, Achse 1 und Achse 2. Dies entspricht den Tiefen, Zeilen und Spalten.

Beispiel: Ein 3D-Array und seine Achsen

# Ein dreidimensionales Array erstellen
array_3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]])

# Visualisierung des Arrays
print("Dreidimensionales Array:\n", array_3d)

Ausgabe:

Dreidimensionales Array:
 [[[ 1  2]
   [ 3  4]]

  [[ 5  6]
   [ 7  8]]

  [[ 9 10]
   [11 12]]]

Hier gibt es drei Achsen:

  • Achse 0: Bezieht sich auf die Tiefe (die "Schichten" des Arrays).
  • Achse 1: Bezieht sich auf die Zeilen innerhalb jeder "Schicht".
  • Achse 2: Bezieht sich auf die Spalten innerhalb jeder "Schicht".

5. Verwendung von Achsen in Operationen

Achsen in Numpy-Arrays sind besonders wichtig, wenn Operationen wie Summieren, Mittelwertberechnung oder Maximumsuche entlang einer bestimmten Dimension durchgeführt werden sollen. Numpy-Operationen wie sum, mean oder max können mit dem Parameter axis gesteuert werden, um festzulegen, entlang welcher Achse die Berechnung erfolgt.

Beispiel: Summieren entlang der Zeilen und Spalten in einem 2D-Array

# Summe entlang der Zeilen (Achse 0)
summe_achse_0 = np.sum(array_2d, axis=0)

# Summe entlang der Spalten (Achse 1)
summe_achse_1 = np.sum(array_2d, axis=1)

# Visualisierung der Ergebnisse
print("Summe entlang der Zeilen (Achse 0):", summe_achse_0)
print("Summe entlang der Spalten (Achse 1):", summe_achse_1)

Ausgabe:

Summe entlang der Zeilen (Achse 0): [12 15 18]
Summe entlang der Spalten (Achse 1): [ 6 15 24]
  • Die Summe entlang der Zeilenachse (Achse 0) summiert die Werte in jeder Spalte.
  • Die Summe entlang der Spaltenachse (Achse 1) summiert die Werte in jeder Zeile.

Beispiel: Maximum entlang der Achsen in einem 3D-Array

# Maximum entlang der Achse 0 (Tiefenachse)
max_achse_0 = np.max(array_3d, axis=0)

# Maximum entlang der Achse 1 (Zeilenachse)
max_achse_1 = np.max(array_3d, axis=1)

# Maximum entlang der Achse 2 (Spaltenachse)
max_achse_2 = np.max(array_3d, axis=2)

# Visualisierung der Ergebnisse
print("Maximum entlang der Achse 0 (Tiefenachse):\n", max_achse_0)
print("Maximum entlang der Achse 1 (Zeilenachse):\n", max_achse_1)
print("Maximum entlang der Achse 2 (Spaltenachse):\n", max_achse_2)

Ausgabe:

Maximum entlang der Achse 0 (Tiefenachse):
 [[ 9 10]
  [11 12]]
Maximum entlang der Achse 1 (Zeilenachse):
 [[ 3  4]
  [ 7  8]
  [11 12]]
Maximum entlang der Achse 2 (Spaltenachse):
 [[ 2  4]
  [ 6  8]
  [10 12]]
  • Das Maximum entlang der Achse 0 gibt das Maximum jeder Position entlang der Tiefe zurück.
  • Das Maximum entlang der Achse 1 gibt das Maximum jeder Zeile in jeder Schicht zurück.
  • Das Maximum entlang der Achse 2 gibt das Maximum jeder Spalte in jeder Schicht zurück.