2016-06-23 22 views
0

Also mache ich einige Berechnungen und ich möchte mit einem großen Array in Python herumspielen. Das Problem ist, dass wenn ich Sachen zum Array machen will, mein Code das Array neu aufbauen wird (was viel Zeit in Anspruch nimmt). Idealerweise würde ich gerne:Wie man numpy Array in Computer für die spätere Verwendung in Python speichern

-Run meinen Code einmal, und erstellen Sie das Array. -Speichern Sie das Array in meinem Computer. -Laden Sie es in ein anderes Projekt, damit ich damit herumspielen kann.

ich in der Dokumentation für numpy sah und ich versuchte

from tempfile import TemporaryFile outfile = TemporaryFile() np.save(outfile, x)

(wo oben x ist mein Array).

Allerdings kann ich nirgendwo eine .npy-Datei auf meinem Computer finden. (Ich benutze PyCharm, wenn das hilft). Wie kann ich es speichern und wie kann ich mein Array in ein anderes Projekt laden?

+2

Warum ausdrücklich nicht nur die Ausgabestelle angeben? Temporäre Datei ist per Definition vorübergehend. Um zu laden, benutze (suprise!) 'Numpy.load()'. – Benjamin

Antwort

2

Ich bin ein wenig verwirrt, warum Sie TemporaryFile verwenden müssen, weil, wie die Dokumentation davon behauptet, die mit TemporaryFile erstellte Datei nicht mehr existiert, sobald sie geschlossen wird oder wenn Ihr Python-Programm beendet wird. Außerdem wird diese Datei keinen Namen haben, also glaube ich, dass dies dein Problem ist und nicht np.save!

Nun, Ihre Frage zu beantworten, versuchen Sie folgendes:

import numpy as np 
a = np.ones(1000) # create an array of 1000 1's for the example 
np.save('outfile_name', a) # save the file as "outfile_name.npy" 

Sie Ihre Array mit beim nächsten Mal laden können Sie den Python-Interpreter starten:

a = np.load('outfile_name.npy') # loads your saved array into variable a. 

Hope this beantwortet Ihre Frage!

0

Haben die gleichen Q und fand diese bei numpy docs (obwohl ich Notwendigkeit arr_0 verwenden gefunden und arr_1 die Variablen im Wörterbuch ref!)

#Store a single array 
import numpy as np 
np.save('/tmp/123', np.array([[1, 2, 3], [4, 5, 6]])) 
np.load('/tmp/123.npy') 
array([[1, 2, 3], 
     [4, 5, 6]]) 

#Store multiple arrays as compressed data to disk, and load it again: 
import numpy as np 
a=np.array([[1, 2, 3], [4, 5, 6]]) 
b=np.array([1, 2]) 
np.savez('/tmp/123.npz', a=a, b=b) 
data = np.load('/tmp/123.npz') 

a1 = data['arr_0'] 
array([[1, 2, 3], 
     [4, 5, 6]]) 
b1 = data['arr_1'] 
array([1, 2]) 
Verwandte Themen