Rilascio della libreria Python per il calcolo scientifico NumPy 2.0.0

È disponibile il rilascio della libreria Python per il calcolo scientifico NumPy 2.0.0, progettata per lavorare con array multidimensionali e matrici, oltre a fornire una vasta collezione di funzioni che implementano vari algoritmi associati all'uso delle matrici. NumPy è una delle librerie più richieste per i calcoli scientifici. Il codice del progetto è scritto in Python con ottimizzazioni in C e distribuito con licenza BSD.

NumPy 2.0.0 è contrassegnato come il primo rilascio significativo dal 2006.
Nella nuova versione, oltre a nuove funzionalità e ottimizzazioni delle prestazioni, sono state apportate modifiche all'ABI, all'API di Python e all'API C, che infrangono la compatibilità retroattiva. Ad esempio, la libreria SciPy compilata con NumPy 1.x per lavorare con NumPy 2.0 richiederà una ricompilazione. In alcuni casi, per utilizzare NumPy 2.0 nelle applicazioni potrebbe essere necessario modificare il codice.

La violazione più significativa riguarda il mantenimento dell'accuratezza delle espressioni scalari; ad esempio, "np.float32(3) + 3" restituirà ora un valore di tipo float32 anziché float64, e nelle espressioni con più tipi verrà utilizzato il tipo con la massima precisione, cioè "np.array([3], dtype=np.float32) + np.float64(3)" restituirà un valore di tipo float64. I tipi interi predefiniti sulla piattaforma Windows sono stati modificati: nei sistemi a 64 bit ora si utilizza un tipo intero a 64 bit, mentre nei sistemi a 32 bit si utilizza un tipo intero a 32 bit (precedentemente si utilizzava un equivalente del tipo long in C, ora si usa np.intp).

Alcune definizioni nell'API C sono state sostituite o rimosse, ad esempio la struttura PyArray_Descr è stata modificata. Il numero massimo di dimensioni e argomenti, impostato attraverso i macro NPY_MAXDIMS e NPY_MAXARGS, è stato aumentato a 64. Tutti i tipi complessi sono stati aggiornati per utilizzare tipi standard dalla specifica C99 (cfloat_t, cdouble_t, clongdouble_t). È stata aggiunta una nuova API C per creare dtype personalizzati. Sono state proposte nuove funzioni semplificate per l'inizializzazione di PyArray_ImportNumPyAPI e PyUFunc_ImportUFuncAPI.

Nell'API di Python c'è una separazione più chiara tra API pubbliche e private, con una nuova struttura di moduli proposta. Circa 100 funzioni, moduli e costanti sono state rimosse dallo spazio dei nomi principale 'np', dichiarate obsolete o eliminate.
È stato ripulito lo spazio dei nomi np.lib. Il numero di oggetti nello spazio dei nomi principale è stato ridotto del 10% e nello spazio dei nomi numpy.lib del 80%. È stato traslato tra gli spazi dei nomi privati numpy.core. Alcuni metodi delle classi np.ndarray e np.generic sono stati eliminati. È stato creato un nuovo spazio dei nomi numpy.stringsf per le operazioni sulle stringhe.

Tra le nuove funzionalità si segnala il supporto per i tipi float32 e longdouble in tutte le funzioni di numpy.fft, il supporto per l'API standard Array nello spazio dei nomi principale, un nuovo spazio dei nomi e i tipi per le stringhe a lunghezza variabile. È stata eseguita un'ottimizzazione delle prestazioni utilizzando le librerie Intel x86-simd-sort e Google Highway per le funzioni di ordinamento, argsort, partizione e argpartition, mentre le operazioni con le stringhe fisse nel modulo numpy.char sono state accelerate. È stata aggiunta una nuova API
opt_func_info per il tracciamento e l'introspezione.

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster