Definition

Was ist NumPy?

| Autor / Redakteur: Tutanch / Nico Litzel

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

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

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.

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

So schnell ist das Deep Learning Framework Caffe

Künstliche Intelligenz

So schnell ist das Deep Learning Framework Caffe

Das Deep Learning Framework Caffe ist auf Modularität, Skalierbarkeit und Schnelligkeit ausgelegt. Dadurch lassen sich unter anderem Modelle für Künstliche Intelligenz innerhalb nur weniger Stunden anstatt mehrerer Tage trainieren. lesen

Ausbildung zum Data Scientist – was wird vermittelt?

Kommentar von Nikolaos Radouniklis, Data Reply

Ausbildung zum Data Scientist – was wird vermittelt?

Die Nachfrage nach Experten für Big Data steigt auch in diesem Jahr exponentiell, um die enormen Datenbestände zu analysieren und eine datengetriebene Kultur in den Unternehmen zu fördern. Damit der akute Bedarf an hochqualifizierten Data Scientists für die hiesigen Märkte annähernd gedeckt werden kann, hat Reply mit „The Data Incubator Reply“ (DIR) das erfolgreiche US-Ausbildungsprogramm von The Data Incubator nach Europa geholt. lesen

Cloudera baut Hadoop weiter aus

Python-Support verbessert

Cloudera baut Hadoop weiter aus

Cloudera verbessert die Unterstützung von Python durch eine Kooperation mit dem Anaconda-Urheber Continuum Labs. Zudem engagiert sich das Unternehmen im Gemeinschaftsprojekt Apache Arrow. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45411956 / Definitionen)