Puoi fare un esempio di cosa stai cercando di fare? Quando eseguo qualcosa in un notebook IPython che è costoso, lo scrivo quasi sempre su disco dopo la parola. Ad esempio, se il mio dati è un elenco di oggetti JSON, scrivo su disco come linea di separazione JSON stringhe formattate:
with open('path_to_file.json', 'a') as file:
for item in data:
line = json.dumps(item)
file.write(line + '\n')
È quindi possibile leggere di nuovo i dati nello stesso modo:
data = []
with open('path_to_file.json', 'a') as file:
for line in file:
data_item = json.loads(line)
data.append(data_item)
Penso che questa sia una buona pratica in generale perché ti fornisce un backup. Puoi anche usare pickle per la stessa cosa. Se i tuoi dati sono davvero grandi, puoi effettivamente scrivere gzip.open
in un file zip.
EDIT
Per salvare uno scikit imparare modello per l'utilizzo del disco joblib.pickle
.
from sklearn.cluster import KMeans
km = KMeans(n_clusters=num_clusters)
km.fit(some_data)
from sklearn.externals import joblib
# dump to pickle
joblib.dump(km, 'model.pkl')
# and reload from pickle
km = joblib.load('model.pkl')
Non so se v'è tale capacità in ipython, ma si può semplicemente memorizzare nella cache i tuoi calcoli costosi a disco con per esempio [joblib.Memory] (https://pythonhosted.org/joblib/memory.html). – rth