Wie kann ich ein numpy Array aus der Datei npy.gz wiederherstellen?

Ich habe eine Anzahl von numpy Objekten mit dem folgenden Code gespeichert:

f = gzip.GzipFile('/some/path/file.npy.gz', "w") np.save(file=f, arr=np.rint(trimmed).astype('int16')) f.close() 

Und jetzt habe ich eine Reihe von npy.gz Dateien, aber ich kann nicht herausfinden, wie man programmatisch zurückkehren sie wieder in Python. np.fromtext oder np.fromstring scheinen nicht zu arbeiten, und würde nicht beibehalten Form Informationen sowieso.

Ich habe es versucht:

 gzipfile = gzip.GzipFile('/some/path/file.npy.gz', 'rb') text = gzipfile.read() 

Und text sieht so aus:

 b'\x93NUMPY\x01\x00F\x00{\'descr\': \'<i2\', \'fortran_order\': False, \'shape\': (132, 248, 291), } \n0\xf80\xf80...' 

Aber was kann ich als nächstes dazu bringen, diesen String wieder in ein knalliges Objekt zu bringen?

2 Solutions collect form web for “Wie kann ich ein numpy Array aus der Datei npy.gz wiederherstellen?”

Wenn es funktioniert, save in einer gzip Datei zu speichern, könnte es auch funktionieren, um von einem zu lesen. load ist das Gegenstück zu save :

 In [193]: import gzip In [194]: f = gzip.GzipFile('file.npy.gz', "w") In [195]: np.save(f, np.arange(100)) In [196]: f.close() In [200]: f = gzip.GzipFile('file.npy.gz', "r") In [201]: np.load(f) Out[201]: array([ 0, 1, 2, 3, 4, .... 98, 99]) 

Es gibt auch einen savez(compressed) , der mehrere Arrays in ein zip Archiv speichert.

Du machst das irgendwie mit deinen Mitteln, aber du kannst stattdessen numpy-Funktionen verwenden, um Objekte zu speichern und zu laden, anstatt andere Funktionen zu verwenden.

Sie können das gewünschte Array mit save() wobei array_obj Ihr Array ist, das Sie speichern möchten.

 array_file = open('array.npy', 'wb') numpy.save(array_file, array_obj) 

Dann können Sie das gewünschte Array wie folgt abrufen.

 array_file = open('array.npy', 'rb') array_obj = numpy.load(array_file) 

Verwenden Sie dementsprechend, hoffe es hilft!

  • Wie installiere ich numpy 1.8 dev auf Windows?
  • Keine binären Operatoren für strukturierte Arrays in Numpy?
  • Installieren von NumPy und SciPy auf 64-Bit-Windows (mit Pip)
  • Zuordnen von Array, Hinzufügen mehrerer Kopien von Index
  • Beste Möglichkeit, den Betrieb mit Input- und Output-History-Abhängigkeit zu vektorisieren?
  • Wie benutzt man `numpy.savez` in einer Schleife, um mehr als ein Array zu speichern?
  • Wie funktioniert die numpy.resize und numpy.reshape Funktion intern in Python?
  • Ersetzen Element durch Element verschiedene Arrays
  • Zwei-Probe-Kolmogorov-Smirnov-Test in Python Scipy
  • Summen-Array nach Anzahl in numpy
  • Wie man elementweise auf einer Matrix des Typs scipy.sparse.csr_matrix operiert?
  • Python ist die beste Programmiersprache der Welt.