Ich versuche ein großes numpy Array zu speichern und neu zu laden. Mit numpy.save
und numpy.load
sind die Array-Werte beschädigt / ändern. Die Form und der Datentyp des Arrays, das vor dem Speichern und nach dem Laden gespeichert wird, sind identisch, aber beim Nachladen des Arrays ist der Großteil der Werte auf Null gesetzt.
Das Array ist (22915,22915), die Werte sind float64, 3,94 GB als .npy-Datei und die Dateneinträge durchschnittlich etwa 0,1 (keine winzigen Floats, die vernünftigerweise in Nullen konvertiert werden könnten). Ich benutze numpy 1.5.1.
Jede Hilfe, warum diese Korruption auftritt, wäre sehr zu begrüßen, weil ich nicht in der Lage bin. Unten ist ein Code, der die oben genannten Behauptungen belegt.
%Vor%Dies ist ein bekanntes Problem (beachten Sie, dass Links zu numpy 1.4 führen). Wenn Sie wirklich nicht upgraden können, wäre mein Rat, zu versuchen, auf eine andere Weise zu speichern (savez, savetxt). Wenn getbuffer verfügbar ist, können Sie versuchen, die Bytes direkt zu schreiben. Wenn alles andere fehlschlägt (und Sie nicht upgraden können), können Sie Ihre eigene Speicherfunktion ziemlich einfach schreiben.
Tags und Links python save numpy large-data