numpy-ts, die umfassendste NumPy-Implementierung in TypeScript, hat Version 1.2 veröffentlicht — ein bedeutender Meilenstein. Die Bibliothek erreicht jetzt etwa 50% der nativen NumPy-Performance und fügt Float16-Support für speichereffiziente numerische Workflows hinzu.
Das Problem, das numpy-ts löst
Python's NumPy ist der De-facto-Standard für arraybasiertes Rechnen — von linearer Algebra über Signalverarbeitung bis zur Datenvorverarbeitung für Machine Learning. Diese API in JavaScript und TypeScript verfügbar zu machen, ohne auf native Binärdateien oder WebAssembly-Kompilierung zu setzen, erfüllt einen lange bestehenden Bedarf.
Reines JavaScript/TypeScript hatte immer mit demselben Problem zu kämpfen: NumPy erreicht seine Geschwindigkeit durch hochoptimierten C- und Fortran-Code. numpy-ts umgeht das, indem es heiße Pfade optimiert und SIMD-freundliche Datenstrukturen nutzt, wo die JavaScript-Engine es erlaubt — und validiert die Ergebnisse gegen die echte NumPy-Testsuite.
Float16: der neue Datentyp
Float16 verwendet 16 Bits pro Zahl statt der üblichen 32 oder 64. Es ist ein Standard in der GPU-Programmierung — NVIDIA Tensor Cores arbeiten nativ in Float16 — weil es den Speicherverbrauch drastisch reduziert.
numpy-ts 1.2 fügt Float16 neben Float32, Float64, Int8/16/32, Uint8/16/32 und komplexen Zahlentypen hinzu.
API-Kompatibilität mit NumPy
Das Projekt zielt auf API-Kompatibilität mit NumPy, nicht nur auf konzeptionelle Ähnlichkeit. Die Dokumentation enthält einen Migrationsleitfaden:
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.linalg.inv(a)
import { array, linalg } from 'numpy-ts';
const a = array([[1, 2], [3, 4]]);
const b = linalg.inv(a);
Installation
npm install numpy-ts
Dokumentation unter numpyts.dev.