numpy-ts, l'implémentation TypeScript la plus complète de l'API NumPy, a publié la version 1.2 — un tournant majeur. La bibliothèque atteint désormais environ 50% des performances de NumPy natif et ajoute le support du Float16 pour les workflows numériques à faible empreinte mémoire.
Le problème que numpy-ts résout
NumPy est la référence du calcul numérique en Python. Transposer cette API en JavaScript pour des outils web, des notebooks ou des applications de data science dans le navigateur, sans passer par des binaires natifs ni de compilation WebAssembly, répond à un besoin réel de l'écosystème.
Les implémentations pures JavaScript ont toujours été confrontées au même défi : NumPy atteint sa vitesse grâce à du code C et Fortran optimisé. numpy-ts contourne ce problème en optimisant les chemins critiques et en utilisant des structures de données favorables au moteur JavaScript, tout en validant ses résultats contre la suite de tests NumPy pour garantir la justesse.
Float16 : la nouvelle dtype
Le Float16 utilise 16 bits par nombre au lieu des 32 ou 64 habituels. C'est un standard en calcul GPU — les Tensor Cores NVIDIA, par exemple, fonctionnent nativement en Float16 — parce que cela réduit drastiquement l'empreinte mémoire.
numpy-ts 1.2 ajoute le support du Float16 aux côtés de Float32, Float64, Int8/16/32, Uint8/16/32, et des types complexes.
L'API NumPy aussi fidèlement que possible
Le projet vise la compatibilité API avec NumPy, pas seulement les concepts. La documentation inclut un guide de migration Python vers TypeScript :
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
Documentation complète sur numpyts.dev.