Sortie de la bibliothèque Python pour le calcul scientifique NumPy 2.0.0

Une version de la bibliothèque Python pour le calcul scientifique NumPy 2.0.0 est disponible, axée sur le travail avec des tableaux et des matrices multidimensionnels, et fournissant également une large collection de fonctions avec la mise en œuvre de divers algorithmes liés à l'utilisation de matrices. NumPy est l'une des bibliothèques les plus populaires utilisées pour les calculs scientifiques. Le code du projet est écrit en Python à l'aide d'optimisations en C et est distribué sous licence BSD.

NumPy 2.0.0 marque la première version majeure depuis 2006.
Dans la nouvelle version, en plus des nouvelles fonctionnalités et des optimisations de performances, des modifications ont été apportées à l'ABI, à l'API Python et à l'API C-API, qui violent la rétrocompatibilité. Par exemple, la bibliothèque SciPy compilée avec NumPy 1.x nécessitera une recompilation pour fonctionner avec NumPy 2.0. Dans certains cas, des modifications de code peuvent être nécessaires pour utiliser NumPy 2.0 dans les applications.

Le bogue le plus important concerne la préservation de la précision des expressions scalaires. Par exemple, « np.float32(3) + 3 » renverra désormais une valeur de type float32 et non plus float64. Dans les expressions comportant plusieurs types, le type le plus précis sera utilisé pour le résultat ; ainsi, « np.array([3], dtype=np.float32) + np.float64(3) » renverra une valeur de type float64. Les types entiers par défaut utilisés sur la plateforme ont été modifiés. Windows — sur les systèmes 64 bits, un type entier 64 bits est désormais utilisé, et sur les systèmes 32 bits, un type 32 bits (auparavant, l'analogue de type C long était utilisé, mais maintenant l'équivalent np.intp).

Certaines définitions de la C-API ont été remplacées ou supprimées, par exemple la structure PyArray_Descr a été modifiée. Le nombre maximum de dimensions et d'arguments définis via les macros NPY_MAXDIMS et NPY_MAXARGS a été augmenté à 64. Tous les types complexes ont été basculés vers l'utilisation de types standard de la spécification C99 (cfloat_t, cdouble_t, clongdouble_t). Ajout d'une nouvelle API C pour créer des types personnalisés. De nouvelles fonctions d'initialisation simplifiées PyArray_ImportNumPyAPI et PyUFunc_ImportUFuncAPI ont été proposées.

L'API Python fournit une séparation plus explicite entre les API publiques et privées et une nouvelle structure de module. Environ 100 fonctions, modules et constantes ont été déplacés hors de l'espace de noms principal « np », obsolètes ou supprimés.
Nettoyage de l'espace de noms np.lib. Le nombre d'objets dans l'espace de noms principal a été réduit de 10 % et dans l'espace de noms numpy.lib de 80 %. L'espace de noms numpy.core a été déplacé vers privé. Suppression de certaines méthodes des classes np.ndarray et np.generic. Création d'un nouvel espace de noms numpy.stringsf avec des opérations sur les chaînes.

Les nouvelles fonctionnalités incluent la prise en charge des types float32 et longdouble dans toutes les fonctions numpy.fft, la prise en charge de l'API Array standard dans l'espace de noms principal, un nouvel espace de noms et des types pour les chaînes de longueur variable. L'optimisation des performances a été réalisée à l'aide des bibliothèques Intel x86-simd-sort et Google Highway pour les fonctions de chaîne sort, argsort, partition et argpartition, les opérations avec les chaînes fixes dans le module numpy.char ont été accélérées. Nouvelle API ajoutée
opt_func_info pour le traçage et l'introspection.

Source: opennet.ru

Achetez un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Achetez un hébergement web fiable avec protection DDoS, serveurs VPS et VDS | ProHoster