Verbesserungen in NumPy 2: Arbeiten mit Strings und Skalaren
Die lang erwartete Version 2 der mathematischen Python-Bibliothek verarbeitet Strings deutlich besser und erhöht die Kompatibilität zu anderen Paketen.
- Timothy Borrell
Endlich ist es da: Im Juni 2024 ist das lang ersehnte Release der zweiten offiziellen Version von NumPy erschienen, einer der bekanntesten Open-Source-Bibliotheken für mathematische Anwendungen in Python. Diejenigen, die sich schon gefragt haben, ob sie jemals eine zweite Major Version sehen werden, können erleichtert aufatmen.
Die Skepsis war nicht ganz unbegründet: Die erste Hauptversion wurde 2006 veröffentlicht. Danach gab es 26 Minor Releases, die nun von NumPy 2.0, einer neuen NumPy-Ära, abgelöst wurden. Im August erschien schon Version 2.1. Nach knapp 18 Jahren ist die neue Version ausgestattet mit einer Reihe an neuen Features und vielen technischen Verbesserungen, sowohl bei der API als auch bei der ABI (Application Binary Interface). Einige alte Funktionen hat das NumPy-Team auch ausgemustert.
- Zu den lang erwarteten Neuerungen in NumPy 2 gehört die erleichterte Verarbeitung von Strings variabler Länge mit der Klasse StringDType und einem eigenen Namespace.
- Neue Scalar Promotion Rules behalten den Datentyp des Eingabetyps bei. Das hat Auswirkungen auf bestehenden Code, da das neue Verhalten nicht rückwärtskompatibel ist.
- Änderungen im mathematischen Bereich betreffen unter anderem die neue Array-API, die die mathematische Basis mit anderen gängigen Python-Paketen vereinheitlicht. Außerdem lassen sich Fast-Fourier-Transformationen effizienter mit dem Typ float32 und präziser mit np.longdouble implementieren.
- Technische Backend-Ă„nderungen zur Leistungsverbesserung wurden beim macOS- und Windows-Support umgesetzt. Und kleine Hilfsfunktionen tracken CPU-Ressourcen.
Natürlich folgt auf solche Breaking Changes, insbesondere an der NumPy-API, eine große Reihe an neuen Einsatzmöglichkeiten. Viele Teams werden aufgrund der technischen und konzeptionellen Änderungen bestehenden Code anpassen müssen. Das kann für manche Projekte schwierig und aufwendig werden und führte auch bereits bei einigen CI/CD-Pipelines zu Problemen.
Das war die Leseprobe unseres heise-Plus-Artikels "Verbesserungen in NumPy 2: Arbeiten mit Strings und Skalaren". Mit einem heise-Plus-Abo können sie den ganzen Artikel lesen und anhören.