Weiter zum Inhalt

NumPy 2.0: Wichtige Änderungen und Migration

Entdecke alle neuen Features und Änderungen im NumPy-2.0-Update.
Aktualisiert 18. Sept. 2026  · 9 Min. lesen

Mit KI erkunden

ChatGPTClaudePerplexity

Da sich Data Science stetig weiterentwickelt, sind Änderungen an gängigen Bibliotheken unvermeidlich – und diesmal bekommt die NumPy-Bibliothek ein Update auf Version 2.0. Dieses große Release ist im Juni 2024 erschienen und bringt viele neue Features und Verbesserungen für die beliebte Python-Bibliothek.

Bei einem so großen Sprung gibt es zwangsläufig Punkte, auf die du achten solltest – eventuell musst du bestehenden Code anpassen.

In diesem Artikel geben wir dir einen Überblick über NumPy 2.0, die wichtigsten Änderungen und wie du auf NumPy 2.0 migrierst.

Einführung in NumPy 2.0

Aufbauend auf jahrelangem Feedback und technischen Fortschritten ist NumPy 2.0 ein ehrgeiziges Upgrade – anders als die vielen kleineren Updates der vergangenen Jahre.

Im Release-Blogpost werden eine aktualisierte API, verbesserte Regeln zur Skalar-Promotion, eine neue DType-API und ein neuer String-DType, mehr Kompatibilität sowie eine Harmonisierung der API-Standards vorgestellt. Dadurch profitieren Nutzer von spürbaren Verbesserungen bei Performance und Dokumentation.

Mit so großen Änderungen geht aber auch etwas Umbruch einher. Beispielsweise sind die neuen API- und ABI-Änderungen nicht abwärtskompatibel.

Wesentliche Neuerungen

Laut den Release Notes führt NumPy 2.0 umfangreiche Änderungen ein. Hier die wichtigsten:

API- und ABI-Änderungen

In diesem Update wurden mehrere Aufräumänderungen an der API und ABI (Application Binary Interface) vorgenommen.

Wie in NEP (NumPy Enhancement Proposal) 52 beschrieben, verabschiedet sich NumPy von seiner bisherigen strikten Abwärtskompatibilität, um eine schlankere, klarere und einfachere API zu schaffen.

Hier einige markante Änderungen:

  • Trennung von öffentlicher und privater API: Durch eine modulare Struktur gibt es nun eine klare Abgrenzung zwischen öffentlicher und privater API in NumPy für Python.
  • Bereinigung des Namespace: Funktionen wurden vereinfacht, um den Einstieg in NumPy leichter zu machen. Die vollständige Liste der Entfernungen findest du hier.
  • Verabschiedung Nischen-Funktionalität: Viele nicht empfohlene Funktionen und Aliasse wurden entfernt.
  • Neuer benutzerdefinierter Typ: Für die C-API wurde eine neue öffentliche API zum Erstellen benutzerdefinierter DTypes veröffentlicht.

Bei den ABI-Änderungen kommt es mit dem neuen Release zu Inkompatibilitäten. Das betrifft Binärdateien von Paketen, die die NumPy-C-API verwenden.

Wer gegen eine frühere NumPy-1.xx-Version gebaut hat, kann NumPy 2.0 nicht nutzen. Weiter unten findest du Empfehlungen zur Migration. Es tritt ein ImportError auf, der auf eine binäre Inkompatibilität hinweist.

Neue DType-API und String-DType

Wie in NEP 41 vorgeschlagen, führt das 2.0-Update eine neue API ein, um benutzerdefinierte Datentypen mit dem StringDType umzusetzen. Diese neue API unterstützt nativ String-Datentypen variabler Länge – ein lang geäußerter Wunsch der NumPy-Community.

Regeln zur Skalar-Promotion

Wie ursprünglich in NEP 50 beschrieben, wurden die Skalar-Promotion-Regeln in NumPy aktualisiert, um Überraschungen zu vermeiden. Zuvor hing die Promotion oft von Datenwerten der Eingabe-Arrays ab statt nur von ihren DTypes – ein verwirrendes Verhalten.

Die neuen Promotionspfade siehst du in der folgenden Grafik:

DType-Präzision und -Promotion

Quelle: NumPy DType precision and promotion

Performance-Verbesserungen

Das neue Release bringt auch Performance-Gewinne.

Die wichtigsten Bereiche:

  • Schnellere Sortierfunktionen
  • Leistungsverbesserungen bei linearen Algebra-Operationen auf macOS durch macOS Accelerate

Windows-Kompatibilität

Um Windows-Nutzern entgegenzukommen, hat das NumPy-Team mit dem neuen Release mehrere Kompatibilitätsprobleme behoben.

So wurde etwa der Standard-Ganzzahltyp unter Windows von int32 auf int64 geändert, um das Standardverhalten anderer Betriebssysteme zu übernehmen.

Bessere Dokumentation und Usability

Die Dokumentation zur Modulstruktur von NumPy wurde erweitert, außerdem die Navigation im Referenzhandbuch verbessert. Die Doku zum Build aus dem Quellcode wurde komplett neu geschrieben.

Migration auf NumPy 2.0

Update auf NumPy 2.0

Um mit der neuen Version loszulegen, musst du NumPy von deiner aktuellen auf die neueste Version aktualisieren.

Nutze dazu einfach die Upgrade-Option in diesem Befehl:

pip install -U numpy

Alternativ kannst du auch das verwenden:

pip install –upgrade numpy

Die Upgrade-Option aktualisiert die angegebenen Pakete auf die neueste Version – in diesem Fall NumPy. Warte nach dem Ausführen, bis die Meldung „Successfully installed numpy-2.0.0“ erscheint.

Wenn du statt der neuesten eine bestimmte Version installieren möchtest, nutze diesen Befehl:

pip install numpy==2.0.0

So stellst du sicher, dass genau Version 2.0.0 installiert wird.

Zum Gegencheck führe diesen Befehl aus:

pip list

Dieser listet alle installierten Pakete/Bibliotheken samt Versionen auf. Prüfe, ob numpy auf Version 2.0.0 aktualisiert wurde. 

Während der Installation können rote Hinweistexte zu Abhängigkeiten erscheinen. Das weist auf mögliche Probleme im Code nach dem Update hin. Analysiere dann gezielt die betroffenen Bereiche und Bibliotheken.

Das Upgrade auf NumPy 2.0 kann vorübergehend störend sein. Sorge deshalb dafür, dass deine Skripte und künftigen Pipelines sauber migriert sind.

Die vollständige Anleitung findest du im offiziellen NumPy 2.0 Migration Guide der Entwickler.

Das sind die Kernpunkte, auf die du bei der Migration achten solltest:

Änderungen bei der NumPy-Datentyp-Promotion adressieren

Eine vollständige Übersicht zu geänderten Verhaltensweisen und erwarteten Datentypänderungen findest du in dieser Tabelle in NEP 50.

Das Hauptproblem bei der Abwärtskompatibilität ist die Präzision deiner Skalare.

Wenn du z. B. folgende Operation ausführst:

np.float32(6) + 6.

Dann ergibt das einen float32 statt eines float64 – was die Abwärtskompatibilität erschwert. Empfohlen wird Folgendes:

Datentypen explizit casten: Nutze int(), float() oder numpy_scalar.item(), um den Datentyp ausdrücklich festzulegen.

Warnungen aktivieren, um Änderungen aufzuspüren: Nutze Warnings und Tracebacks, um Änderungen schneller zu finden.

Namespace-Änderungen adressieren

Mit dem 2.0-Update können zahlreiche entfernte Namespaces deinen Code betreffen. Das NumPy-Team empfiehlt diese Schritte:

  1. Prüfe veraltete Aliasse und Migrationshinweise hier.
  2. Ersetze veraltete Aliasse durch abwärtskompatible Alternativen.
  3. Prüfe, ob private Member in 2.0 entfernt wurden.
  4. Nutze die öffentliche API, falls zuvor private Member verwendet wurden.

ABI-Brüche adressieren

Wenn du ein Python-Paket nutzt, das von NumPys C-API abhängt, musst du eventuelle ABI-Brüche beheben. Die Entwickler geben hierzu NumPy-2.0-spezifische Hinweise, um die Inkompatibilitäten zu adressieren:

Ruff-Plugin zur Aktualisierung von Python-Code

Für die Migration kannst du das Ruff-Plugin mit einer dedizierten Ruff-Regel NPY201 verwenden.

Ruff ist auf PyPI als ruff verfügbar. So installierst du Ruff:

pip install ruff

Weitere Details findest du in der vollständigen Ruff-Installationsanleitung.

Füge die Regel NP201 in deiner pyproject.toml hinzu:

[tool.ruff.lint]
select = ["NPY201"]

Alternativ kannst du die NPY201-Regel über die Kommandozeile angeben:

$ ruff check path/to/code/ --select NPY201

Community-Beiträge

Das Release von NumPy 2.0 ist das Ergebnis der Arbeit seiner Community. Durch zahlreiche NEPs aus der Community wurden viele lang erwartete Vorschläge endlich umgesetzt.

Engagierte Entwicklerinnen und Entwickler, Forschende und Enthusiasten haben eine zentrale Rolle in diesem Meilenstein gespielt: mit Expertise, Feedback und Code-Verbesserungen, die NumPy 2.0 maßgeblich geprägt haben.

Fazit

NumPy 2.0 ist ein großer Schritt nach vorn für die Python-Welt – mit vielen neuen Features und Verbesserungen bei Performance, Kompatibilität und Bedienbarkeit. Wenn du auf Probleme bei der Migration oder Fehler stößt, wende dich am besten direkt an das NumPy-Team.

Ich hoffe, dieser Artikel hat dir die wichtigsten Änderungen des spannenden NumPy-Updates nähergebracht. Für eine vertiefende Lektüre schau dir unser NumPy-Tutorial an.

Wenn du neu bei NumPy bist und mehr entdecken möchtest, probiere unseren Kurs Introduction to NumPy aus oder nimm an diesem NumPy Live Code Along Training teil. 


Austin Chia's photo
Author
Austin Chia
LinkedIn

Ich bin Austin, ein Blogger und Tech-Autor mit jahrelanger Erfahrung als Datenwissenschaftler und Datenanalyst im Gesundheitswesen. Ich habe meine Reise in die Welt der Technik mit einem Hintergrund in Biologie begonnen und helfe jetzt anderen mit meinem Technik-Blog, den gleichen Weg einzuschlagen. Meine Leidenschaft für Technologie hat dazu geführt, dass ich für Dutzende von SaaS-Unternehmen schreibe, um andere zu inspirieren und meine Erfahrungen zu teilen.

Themen
Python

Top-Python-Kurse

Kurs

Einführung in NumPy

4 Std.
61.9K
Du lernst anhand von Daten zum New Yorker Baumbestand, wie du mit NumPy Arrays erstellen, sortieren, filtern und aktualisieren kannst.
Details anzeigenRight Arrow
Kurs Starten
Mehr anzeigenRight Arrow
Verwandt

Tutorial

Python-Arrays

Python-Arrays mit Code-Beispielen. Lerne noch heute, wie du mit Python NumPy Arrays erstellen und ausdrucken kannst!
DataCamp Team's photo

DataCamp Team

3 Min.

Tutorial

30 coole Python-Tricks für besseren Code mit Beispielen

Wir haben 30 coole Python-Tricks zusammengestellt, mit denen du deinen Code verbesserst und deine Python-Kompetenzen ausbaust.
Kurtis Pykes 's photo

Kurtis Pykes

15 Min.

Tutorial

Python Datenstrukturen Tutorial

Mach dich mit Python-Datenstrukturen vertraut: Lerne mehr über Datentypen und primitive sowie nicht-primitive Datenstrukturen wie Strings, Listen, Stapel usw.
Sejal Jaiswal's photo

Sejal Jaiswal

24 Min.

Tutorial

Zahlen in Python quadrieren: Grundlagen und fortgeschrittene Methoden

Quadrieren in Python ist einfach: Nutze den eingebauten Operator ** oder setze für vielseitigere Lösungen NumPy, pow(), math.pow(), Bitoperatoren und weitere Funktionen ein.
Allan Ouko's photo

Allan Ouko

11 Min.

Tutorial

Python range()-Funktion Tutorial

Lerne anhand von Beispielen die Python-Funktion range() und ihre Möglichkeiten kennen.
Aditya Sharma's photo

Aditya Sharma

7 Min.

Tutorial

Auf 2 Dezimalstellen runden in Python: 7 Methoden erklärt

Lerne, wie du Zahlen in Python mit round(), f-Strings, format(), dem decimal-Modul, NumPy und mehr auf zwei Dezimalstellen rundest — inklusive Vergleichstabelle der Methoden.
Allan Ouko's photo

Allan Ouko

7 Min.

Mehr AnzeigenMehr Anzeigen