Suchen

Definition Was ist NumPy?

| Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

NumPy ist eine Programmbibliothek für die Programmiersprache Python. NumPy erweitert Python um Funktionen für wissenschaftliches Rechnen und numerische Berechnungen. Mit der Bibliothek ist das effiziente Rechnen mit Matrizen, mehrdimensionalen Arrays und Vektoren möglich

Firma zum Thema

(Bild: © aga7ta - stock.adobe.com)

Die Abkürzung NumPy ist eine Akronym für „Numeric Python“. Es handelt sich um eine Programmbibliothek, die die Programmiersprache um Funktionen für numerische Berechnungen und mathematische Routinen erweitert. Mithilfe von Python ist effizientes Rechnen mit großen Matrizen und Arrays möglich. Viele mit Python programmierte Anwendungen aus dem Big-Data- und Deep-Learning-Umfeld greifen auf die mathematischen Funktionen von NumPy zurück.

NumPy basiert auf den früheren Python-Modulen Numeric und Numarray. Die Programmbibliothek kombiniert in Teilen die Funktionen und den Code der beiden Module. Entwickelt wurde NumPy von Travis Oliphant. Die Veröffentlichung der ersten Version erfolgte im Jahr 2005. Seither wird die quelloffene Bibliothek von einer großen Community ständig weiterentwickelt. Die aktuelle Version aus dem Jahr 2018 ist NumPy 1.14.5. In den Standardinstallationen von Python ist die Programmbibliothek in der Regel nicht vorhanden und muss zusätzlich installiert werden. NumPy bildet die Grundlage für weitere Bibliotheken wie SciPy. Die Bibliothek ist über eine Open-Source-BSD-Lizenz frei verfügbar.

Warum Python die Bibliothek NumPy benötigt

Die Programmiersprache Python ist nicht für numerische Berechnungen optimiert. Mathematische Routinen führt der Standard-Interpreter als nicht optimierten Bytecode aus. Komplexere Berechnungen und das Rechnen mit großen Datenmengen ist in Python ineffizient. Um diesen Mangel auszugleichen, kommen Bibliotheken wie NumPy zum Einsatz. NumPy vereinfacht die Verwendung von Arrays und ermöglicht mehrdimensionale Array-Operationen. Die Funktionen und Operatoren der Bibliothek sind speziell hierfür optimiert.

Welche Funktionen bietet NumPy?

Das Modul NumPy bietet viele Funktionen rund um das wissenschaftliche Rechnen. N-dimensionale Arrays lassen sich leicht erstellen und in hoher Geschwindigkeit berechnen. NumPy ist an Fortran und C angelehnt und arbeitet sehr effizient. Weitere wichtige Funktionen der Programmbibliothek sind:

  • schnelle Matrix-Berechnungen
  • Unterstützung von Rechenoperationen der linearen Algebra und Fourier-Transformation
  • Algorithmen für das Sortieren
  • statistische Funktionen
  • Funktionen für die Strukturierung von Daten
  • Bereitstellung der Grundlagen für weitere wissenschaftliche Python-Bibliotheken

Die Kernfunktionalität n-dimensionale Arrays

Eine der Kernfunktionalitäten von NumPy ist das mehrdimensionale Array. Hierfür stellt die Bibliothek die Datenstruktur „ndarray“ zur Verfügung. Ein ndarray ist eine Matrix von Elementen (meist Zahlen). Es handelt sich um einen zusammenhängenden Speicherbereich mit einer festen Größe. Das ndarray weist viele Gemeinsamkeiten mit normalen Python-Listen auf. Wesentlicher Unterschied ist, dass alle Elemente eines Arrays vom selben Datentyp sein müssen. Leere Objekte oder das Verändern der Größe eines Arrays sind nicht erlaubt. Dank dieser Eigenschaften sind die NumPy-Arrays vom Python-Interpreter schneller als Listen prozessierbar. Zahlreiche Funktionen vereinfachen die Arbeit mit den Inhalten der Arrays. Die Adressierung der Elemente innerhalb eines Arrays erfolgt per Indexschreibweise.

Im Wesentlichen besteht ein ndarray aus zwei Teilen: dem Header und dem Array. Der Header beinhaltet die Informationen, was wie im Array gespeichert ist. Die eigentlichen Daten sind im Array abgelegt. Die Anzahl der Dimensionen eines ndarrays nennt sich auch Rang.

Zusammenspiel von Python, NumPy, SciPy und Matplotlib

Oft sind Bibliotheken wie SciPy oder Matplotlib gemeinsam mit NumPy installiert. SciPy erweitert die Leistungsfähigkeit von NumPy in Bezug auf wissenschaftliche Berechnungen und unterstützt Funktionen wie Minimierung, Regression oder Fouriertransformation. Die Kombination von NumPy, SciPy und Matplotlib lässt sich als Open-Source-Ersatz von Matlab nutzen, der kommerziellen Software zur Lösung mathematischer Aufgabenstellungen und grafischen Darstellung der Ergebnisse. Der Funktionsumfang von Matplotlib ist den Möglichkeiten von Matlab in Bezug auf die Erstellung von Plots sehr ähnlich. Sowohl Matlab als auch NumPy verwenden für Berechnungen der linearen Algebra intern die Programmbibliotheken BLAS (Basic Linear Algebra Subprograms) und LAPACK (Linear Algebra Package).

Anwendungen von Python und NumPy

Zahlreiche Anwendungen in verschiedensten Bereichen basieren auf der Programmiersprache Python und der Programmbibliothek NumPy. So verwendet beispielsweise OpenCV, die freie Programmbibliothek für maschinelles Sehen und Bildverarbeitung, intern NumPy-Arrays zur Verarbeitung und Berechnung der Daten. NumPy-Arrays dienen als universelle Datenstruktur zur Analyse von Bilddaten. Sie bilden die Grundlage für die Algorithmen der Bildverarbeitung.

Im Deep-Learning-Umfeld kommen ebenfalls oft Array-Berechnungen mithilfe von Python und NumPy zum Einsatz. Die Rechenoperationen sind sehr effizient und eignen sich für die Verarbeitung großer Datenmengen. Die Datenstrukturen und Definitionen beliebiger Datentypen mit NumPy lassen sich zur schnellen und nahtlosen Integration vieler verschiedener Datenbanken verwenden. Effiziente mehrdimensionale Container ermöglichen die Programmierung Künstlicher Intelligenz (KI). Aufgrund der zahlreichen nützlichen Funktionen bezeichnen viele Python und NumPy als „Schweizer Taschenmesser“ für wissenschaftliche Anwendungen.

(ID:45411956)

Über den Autor