テンソルデータを分析しようとしていますが、np.load()を使用して選択したファイルのデータを読み取ることができませんでした。次のように私のPythonコードは次のとおりです。なぜnp.load()はpickledファイル内のndarrayデータを読み取れなかったのですか?
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)
をしかし、私は次のようにdata.batにデータをロードする)(np.loadを使用しようとしたとき:
np.load('G:\data.dat')
いくつかのエラーが
「として表示されます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.
誰もが私を助けることができる?
'pickle.load'は' pickle.dump'と、 'np.load'は' np.save'と対になります。 pickleとnumpyのロード/セーブの間には一定の相互作用があります。 'save'は数値配列として保存できないもののためにpickleを使います。配列の 'pickle'は' save'のバージョンです。しかし、そのコードがその詳細を処理するようにしてください。自分で混ぜないでください。 – hpaulj
@hpaulj、ありがとうございます。 –