2015-05-26 20 views
1

我救了一大陣使用python複數,的Python:使用numpy的

numpy.save(file_name, eval(variable_name)) 

,沒有任何麻煩的工作保存/載入大陣。然而,裝載,

variable_name=numpy.load(file_name) 

產生以下錯誤,

ValueError: total size of new array must be unchanged 

使用:Python的2.7.9 64位和文件爲1.19 GB大。

回答

2

沒有您的數組的大小沒有問題,你可能沒有打開你的文件在正確的道路,試試這個:

with open(file_name, "rb") as file_: 
    variable_name = np.load(file_) 
0

或者您可以使用pickle

import pickle 

# Saving: 
data_file = open('filename.bi', 'w') 
pickle.dump(your_data, data_file) 
data_file.close() 

# Loading: 
data_file = open('filename.bi') 
data = pickle.load(data_file) 
data_file.close() 
+0

這對numpy數組有很大的開銷。使用'numpy.save'或hdf5文件格式是首選。 – rth

+0

非常感謝。是的,pickle/dump給了我一個大陣列的內存錯誤。我會在一個小時內嘗試更高的版本。 – mic

+0

這很奇怪:在週五我重複運行代碼沒有任何錯誤(即使關閉控制檯後) 今天,即使在重新啓動python/spyder之後,我重複地獲得了代碼。 (數據存儲在本地驅動器上) 現在,我重新運行腳本,我無法重現錯誤。 一旦錯誤再次發生,我會回到這裏。 – mic