Zweidimensionale Arrays, oder Matrizen, sind grundlegende Datenstrukturen in der Programmierung, besonders wichtig für Aufgaben wie Bildverarbeitung, lineare Algebra und Spieleentwicklung. Obwohl Python keinen eingebauten 2D-Array-Typ wie einige andere Sprachen (z. B. C++) besitzt, bietet es mehrere effiziente und elegante Möglichkeiten, diese zu erstellen und zu manipulieren. Dieser Artikel untersucht drei beliebte Ansätze: List Comprehension, verschachtelte Schleifen und die leistungsstarke NumPy-Bibliothek.
Inhaltsverzeichnis
List Comprehension Methode
List Comprehension bietet eine prägnante und Pythonische Möglichkeit, 2D-Arrays zu erstellen, besonders vorteilhaft bei der Initialisierung mit Werten, die aus Formeln oder Mustern generiert werden. Es verwendet verschachtelte List Comprehensions, wobei die äußere Schleife die Zeilen und die innere Schleife die Spalten verarbeitet.
# 3x4 Array mit Nullen gefüllt
rows = 3
cols = 4
array_2d = [[0 for _ in range(cols)] for _ in range(rows)]
print(array_2d) # Ausgabe: [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
# 3x3 Array mit Werten basierend auf Zeilen- und Spaltenindizes
array_2d = [[i + j for j in range(3)] for i in range(3)]
print(array_2d) # Ausgabe: [[0, 1, 2], [1, 2, 3], [2, 3, 4]]
# 2x2 Array mit Zufallszahlen (erfordert das Importieren von random)
import random
array_2d = [[random.randint(1,10) for _ in range(2)] for _ in range(2)]
print(array_2d) # Ausgabe: (Beispiel) [[7, 2], [9, 5]]
Methode mit verschachtelten Schleifen
Dieser Ansatz verwendet verschachtelte for
-Schleifen mit range
, um die Array-Elemente zeilen- und spaltenweise zu erstellen. Er ist ausführlicher als List Comprehension, kann aber für Anfänger leichter verständlich sein.
rows = 3
cols = 4
array_2d = []
for i in range(rows):
row = []
for j in range(cols):
row.append(0) # Oder ein anderer Initialisierungswert
array_2d.append(row)
print(array_2d) # Ausgabe: [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
rows = 3
cols = 3
array_2d = []
for i in range(rows):
row = []
for j in range(cols):
row.append(i*cols + j) #Beispielfüllung mit sequentiellen Zahlen
array_2d.append(row)
print(array_2d) # Ausgabe: [[0, 1, 2], [3, 4, 5], [6, 7, 8]]
NumPy Arrays
NumPy ist eine leistungsstarke Bibliothek für numerische Berechnungen in Python. Ihre Funktion numpy.array()
ermöglicht die effiziente Erstellung und Manipulation mehrdimensionaler Arrays. NumPy-Arrays bieten eine deutlich schnellere Leistung als Python-Listen für numerische Operationen.
import numpy as np
# 3x4 Array mit Nullen gefüllt
array_2d = np.zeros((3, 4))
print(array_2d)
# 3x3 Array mit Einsen gefüllt
array_2d = np.ones((3, 3))
print(array_2d)
# 2x2 Array mit einem bestimmten Wert gefüllt
array_2d = np.full((2, 2), 7)
print(array_2d)
# 3x3 Einheitsmatrix
array_2d = np.eye(3)
print(array_2d)
# 2x3 Array mit Zufallszahlen zwischen 0 und 1
array_2d = np.random.rand(2, 3)
print(array_2d)
# 2x2 Array mit Zufallszahlen zwischen 1 und 10
array_2d = np.random.randint(1, 11, size=(2,2))
print(array_2d)
NumPy bietet verschiedene Funktionen zur Initialisierung von Arrays mit verschiedenen Werten und Mustern, was es zur bevorzugten Wahl für numerische Berechnungen mit 2D-Arrays macht. Denken Sie daran, import numpy as np
zu verwenden, bevor Sie diese Funktionen verwenden.