• Mutimedia Web la Web Agency Italiana. Contattateci per preventivi gratuiti e consulenze nello sviluppo del vostro sito web o app Ios e Android. Professinalità e assistenza garatite!
    Immagini dei quadri e opere di: Giuseppe Lattanzio

  • Social

    [easy-social-share buttons="facebook,twitter,pinterest,linkedin,digg,stumbleupon,vk,tumblr,print,mail,del,reddit,whatsapp" counters=0 hide_names="force" template="grey-blocks-retina"]
  • WEB AGENCY

  • Sede Principale

    Multimedia Web

    Blog Studio Web

    Studio Web

    Sede a Venezia

    Web Agency Venezia

    Sede a New York

    Nyc Web Design

    Sede International

    Web Designer International

    Sito Demo One Page

    Spaghetti Web

    Landing page

    Savinus

  • smartphone

    Trovaci sul tuo smartphone

  • web-designer-ancona
  • AGENZIA WEB ITALIA

Home / News / NumPy 1.20: cosa c’è di nuovo

NumPy 1.20: cosa c’è di nuovo


È stata appena rilasciata l’ultima versione di NumPy, il modulo Python più usato per tutte quelle applicazioni che hanno a che fare con il calcolo scientifico.

La versione 1.20 introduce diverse novità: nel seguito cercheremo di riassumere quelle più significative.

Tipizzazione: numpy.typing

NumPy 1.20 introduce un nuovo sottomodulo chiamato numpy.typing, che permetterà agli sviluppatori una maggiore flessibilità nella gestione dei tipi, grazie all’introduzione di nuovi alias e alle due classi ArrayLike e DtypeLike. Va detto, comunque, che questo modulo è ancora in fase di sviluppo, ed è verosimile aspettarsi qualche irregolarità soprattutto a causa delle function annotations, su cui il team di sviluppo è tuttora all’opera.

A tutto ciò si aggiunge anche un lavoro non indifferente mirato a facilitare il processo di estensione dei dtypes e le relative operazioni di casting.

Performance

Anche le ottimizzazioni mirate a ridurre la velocità di esecuzione sono state significative, con un maggiore uso di istruzioni SIMD per ottimizzare l’elaborazione di dati multipli in parallelo. Ciò dovrebbe accelerare l’esecuzione di molte funzioni comuni, oltre a consentire un uso più esteso di alcune funzionalità di accelerazione moderne su hardware diversi.

Altre novità

In NumPy 1.20, le funzioni mean, std e var sono state modificate per accettare un nuovo argomento: la parola chiave where. L’uso di quest’ultimo parametro permetterà di limitare l’ambito di applicazione di queste funzioni, quando esse sono applicate ad oggetti numpy.ndarray, specificando criteri di selezione. Il parametro where è inoltre disponibile per le funzioni any e all.

Altri migliorie meno consistenti includono alcuni perfezionamenti nelle espressioni matematiche polinomiali, relativamente a tutti i tipi definiti nel modulo numpy.polynomial. È stato inoltre migliorato l’output di array e oggetti tramite la revisioni dei vari metodi __repr__.

Retrocompatibilità e API C

Le novità di NumPy 1.20 riguardano anche gli utenti che sfruttano le API C, dal momento che la macro PyArray_DescrCheck è stata modificata in maniera significativa. Ciò vuol dire che il codice compilato con le versioni precedenti dell’API sarà incompatibile con la nuova versione. La documentazione fornisce comunque un “workaround” per ovviare a questo problema: sarà necessario incorporare manualmente la macro, sostituendola alla nuova definizione.

Un’altra potenziale sorgente di errori dovuta alle modifiche della nuova versione di NumPy consiste nella modifica delle dimensioni delle strutture PyArrayObject e PyVoidScalarObject. Chi utilizza tali strutture dovrà quindi controllare la documentazione per verificare in che modo il codice deve essere aggiornato, per evitare errori o brutte sorprese.

Infine, è bene sottolineare come NumPy 1.20 non funzionerà con Python 3.6, dal momento che le versioni supportate sono quelle che vanno dalla 3.7 alla 3.9. Vi sono anche numerosi costrutti considerati deprecati, come l’uso di alias per i tipi built-in, o il passaggio di shape = None alle funzioni che richiedono il parametri shape. Maggiori dettagli sulla nuova versione possono essere trovati nella documentazione ufficiale del progetto.

Fonte: NumPy.org



Source link