È possibile utilizzare PyTables per creare un file Hierarchical Data Format (HDF) per archiviare i dati. Questo fornisce alcune interessanti opzioni in-memory che collegano l'oggetto che si sta lavorando con il file è salvato in
Ecco un altro domande StackOverflow che dimostra come fare questo:. "How to store a NumPy multidimensional array in PyTables."
Se siete disposti a lavorare con la matrice come un oggetto Pandas dataframe, è anche possibile utilizzare l'interfaccia Panda a PyTables/HDF5, ad esempio:
import pandas
import numpy as np
a = np.ones((43200, 4000)) # Not recommended.
x = pandas.HDFStore("some_file.hdf")
x.append("a", pandas.DataFrame(a)) # <-- This will take a while.
x.close()
# Then later on...
my_data = pandas.HDFStore("some_file.hdf") # might also take a while
usable_a_copy = my_data["a"] # Be careful of the way changes to
# `usable_a_copy` affect the saved data.
copy_as_nparray = usable_a_copy.values
con i file di queste dimensioni, si potrebbe considerare se l'applicazione può essere effettuata con un algoritmo parallelo e potenzialmente applicato solo a sottoinsiemi di grandi matrici di dover consumare tutto l'array prima di procedere.
Hai provato 'np.savetxt ('file.npy.gz')'? Ci vorrà più tempo per salvare e successivamente caricare (a causa della compressione), ma dovrebbe ridurre drasticamente la dimensione del file. – wflynny
@Bill grazie per la risposta, appena provato con np.savetxt ('file.npy.gz'), e riduce le dimensioni del mio file ma non è in grado di caricare i dati indietro. – user2766019
Sei sicuro di aver caricato il file con la stessa estensione di file in cui l'hai salvato? 'Np.loadtxt ('file.npy.gz')'. – wflynny