Funzione fromfile di numpy in python

La funzione fromfile() della libreria numpy di Python carica in memoria un array precedentemente salvato su un file di testo con la funzione tofile().

fromfile(file)

Dove file è il nome del file che contiene i dati da ripristinare nell'array.

Tra gli altri attributi facoltativi meritano d'essere ricordati

  • sep = il carattere di separazione (di default è il carattere blank " ").
  • dtype = il tipo di dati nell'array (int, float, ecc.)
  • count = il numero di elementi da ripristinare (di default è -1 che equivale a dire tutti gli elementi)

Nota. La funzione fromfile() non ripristina le dimensioni dell'array ma solo i dati. Quindi, se l'array è una matrice a 2 dimensioni, i dati sono ripristinati come un vettore a 1 dimensione. Per correggere questo problema uso il metodo reshape() oppure opto per il salvataggio e il ripristino dell'array come file binario tramite le funzioni load() e save().

    Un esempio pratico

    Creo un array a due dimensioni.

    Si tratta di una matrixe 2x2 con due righe e due colonne.

    x = np.array([[1,2],[3,4]])

    Salvo i dati dell'array in un file con nome "prova.dat" tramite il metodo tofile().

    x.tofile("prova.dat")

    Carico i dati dal file "prova.dat" tramite la funzione fromfile().

    y = np.fromfile("prova.dat", dtype=int)

    Quando visualizzo il contenuto dell'array assegnato alla variabile y, python mi mostra i dati come array a una dimensione

    >>> print(y)
    [1 2 3 4]

    Per ripristinare anche le dimensioni iniziali della matrice, posso richiamare la funzione fromfile con il metodo reshape(2,2).

    y = np.fromfile("prova.dat", dtype=int).reshape(2,2)

    In questo modo l'array viene ripristinato correttamente come matrice con due righe e due colonne.

    >>> print(y)
    [[1 2]
    [3 4]]

    Per ripristinare solo la prima riga di elementi uso l'attributo count=2

    z = np.fromfile("prova.dat", dtype=int, count=2)

    La funzione fromfile ripristina solo i primi due elementi dell'array.

    >>> print(z)
    [1 2]

    E così via.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    Numpy

    I metodi e le funzioni