NumPy Tutorials

NumPy: Arithmetische Operationen und Broadcasting meistern

Spread the love

NumPy ist eine grundlegende Bibliothek für numerische Berechnungen in Python und bietet leistungsstarke Werkzeuge für die effiziente Array-Manipulation. Dieses Tutorial befasst sich mit zwei fundamentalen Konzepten: arithmetische Operationen und Broadcasting, die unerlässlich sind, um prägnanten und performanten numerischen Code zu schreiben.

Inhaltsverzeichnis

  1. Arithmetische Operationen
  2. Broadcasting

1. Arithmetische Operationen

NumPy erweitert nahtlos Pythons arithmetische Operatoren (+, -, *, /, //, %, **) für die direkte Anwendung auf NumPy-Arrays. Diese Operationen erfolgen elementweise, d. h. sie werden auf entsprechende Elemente in den Arrays angewendet. Dies wird anhand von Beispielen veranschaulicht:


import numpy as np

arr1 = np.array([1, 2, 3, 4])
arr2 = np.array([5, 6, 7, 8])

print("Addition:", arr1 + arr2)       # Ausgabe: [ 6  8 10 12]
print("Subtraktion:", arr1 - arr2)    # Ausgabe: [-4 -4 -4 -4]
print("Multiplikation:", arr1 * arr2) # Ausgabe: [ 5 12 21 32]
print("Division:", arr1 / arr2)      # Ausgabe: [0.2        0.33333333 0.42857143 0.5       ]
print("Ganzzahldivision:", arr1 // arr2) # Ausgabe: [0 0 0 0]
print("Modulo:", arr1 % arr2)        # Ausgabe: [1 2 3 4]
print("Potenzierung:", arr1 ** arr2) # Ausgabe: [    1    64  2187 65536]

Diese elementweise Operation lässt sich mühelos auf mehrdimensionale Arrays erweitern.

2. Broadcasting

Broadcasting ist eine leistungsstarke NumPy-Funktion, die Operationen zwischen Arrays unterschiedlicher Formen unter bestimmten Bedingungen ermöglicht. Es eliminiert die Notwendigkeit expliziter Schleifen und verbessert die Leistung deutlich. Die Kernregeln des Broadcastings sind:

  1. Regel 1: Wenn Arrays ungleiche Dimensionen haben, wird die Form des kleineren Arrays mit führenden 1en erweitert, bis sie der Dimensionalität des größeren Arrays entspricht.
  2. Regel 2: Wenn ein Array eine Dimension der Größe 1 hat und das andere Array eine Dimension größer als 1 hat, wird die Dimension der Größe 1 auf die größere Dimension gestreckt.
  3. Regel 3: Wenn Arrays unterschiedliche Dimensionen haben und keine die Größe 1 hat, wird ein ValueError ausgelöst.

Das Broadcasting wird hier demonstriert:


import numpy as np

arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([10, 20, 30])

result = arr1 + arr2  # Broadcasting in Aktion

print(result)
# Ausgabe:
# [[11 22 33]
# [14 25 36]]

Hier wird arr2 (Form (3,)) auf die Form von arr1 (2, 3) übertragen. Jede Zeile von arr1 wird zu arr2 addiert, wodurch explizite Schleifen vermieden werden. Das Beherrschen des Broadcastings ist entscheidend für das Schreiben effizienten und lesbaren NumPy-Codes. Berücksichtigen Sie stets die Array-Formen, um unerwartete Ergebnisse oder Fehler zu vermeiden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert