Ich versuche, eine Tensor-Daten zu analysieren, aber ich konnte die Daten in der ausgewählten Datei nicht mit np.load() lesen. Mein Python-Code ist wie folgt:Warum konnte np.load() meine ndarray-Daten nicht in einer gebeizten Datei lesen?
import pickle
import numpy as np
import sktensor as skt
import numpy.random as rn
data = np.ones((10, 8, 3), dtype='int32') # 3-mode count tensor of size 10 x 8 x 3
##data = skt.dtensor(data)
with open('data.dat', 'w+') as f: # can be stored as a .dat using pickle
pickle.dump(data, f)
with open('data.dat', 'r+') as f: # can be loaded back in using pickle.load
tmp = pickle.load(f)
assert np.allclose(tmp, data)
Aber als ich versuchte np.load() zu verwenden, um die Daten in data.bat zu laden, wie folgt:
np.load('G:\data.dat')
Einige Fehler erscheint als“
Traceback (most recent call last):
File "<pyshell#34>", line 1, in <module>
np.load('D:/GDELT_Tensor/data.dat', mmap_mode = 'r')
File "C:\Python27\lib\site-packages\numpy\lib\npyio.py", line 416, in load
"Failed to interpret file %s as a pickle" % repr(file))
IOError: Failed to interpret file 'D:/data.dat' as a pickle.
Wer kann mir helfen?
'pickle.load' Paare mit' pickle.dump' und 'np.load' Paare mit' np.save'. Es gibt ein gewisses Wechselspiel zwischen Beizen und anzahligem Laden/Speichern. 'save' verwendet Pickle für Dinge, die nicht als numerisches Array gespeichert werden können. Und das 'pickle' eines Arrays ist eine Version des' save'. Aber lassen Sie den Code sich um diese Details kümmern. Mischen Sie sie nicht selbst. – hpaulj
@hpaulj, Vielen Dank für Ihren Vorschlag. –