Wie benutze 'numpy.savez' in einer Schleife um mehr als ein Array zu speichern?

8

Aus einer Schleife bekomme ich ein Array. Ich möchte diese Arrays in einem tempfile speichern. Das Problem ist, dass np.savez nur das letzte Array aus der Schleife speichert. Ich denke ich verstehe, warum das passiert, aber ich weiß nicht, wie ich es besser machen soll.

Um mein Problem zu lösen, hatte ich die Idee, die temp-Datei in mode=a+b zu öffnen mit dem Ziel, die neuen Arrays aus der Schleife anzuhängen. Aber das funktioniert nicht.

Mein Code bisher:

%Vor%

Dann die temp-Datei verwenden, um die Arrays zu lesen:

%Vor%

Aber ich möchte 10 Arrays in der temporären Datei. Irgendwelche Ideen?
Danke

    
Hubschr 28.03.2014, 12:02
quelle

3 Antworten

8

Sie können die Argumente *args verwenden, um viele Arrays in nur einer temporären Datei zu speichern.

%Vor%

oder:

%Vor%     
Saullo Castro 28.03.2014, 12:29
quelle
3

Sorry für mein Englisch im Voraus.

Da die Funktion savez die Datei öffnet, alle Variablen schreibt und dann die Datei schließt, werden Daten beim Aufruf überschrieben.

savez ist einfach. Sie finden den Code unter Ссылка

Wie wäre es mit der Implementierung von "your_own_savez", dann benutze den folgenden Code.

%Vor%

Hier ist mein schneller und schmutziger Code.

%Vor%     
emeth 28.03.2014 14:51
quelle
2

Ich bin kein erfahrener Programmierer, aber so habe ich es gemacht (nur für den Fall, dass es jemandem in der Zukunft helfen könnte). Außerdem schreibe ich das erste Mal hier, also entschuldige ich mich, wenn ich nicht einer Art Standard folge;)

Erstellen der npz-Datei:

%Vor%

Laden der Variablen mit ihren ursprünglichen Namen:

%Vor%

Der einzige Unterschied besteht darin, dass die Variablen zu numpigen Variablen werden.

    
João Tjimmyy Gomes 06.01.2016 11:02
quelle

Tags und Links