[英]Best Way To Save/Load Data To/From A .CSV File
我正在嘗試在.csv
文件中保存和加載一個包含 2 個ndarrays
的元組列表和一個int
。
在我當前的實現中,當我保存和加載列表 l 時,恢復的列表中存在一些10^-10
。 有沒有辦法更精確地保存和恢復值? 我也很感激對我的代碼的評論。 謝謝!
這就是我現在所擁有的:
def save_l(l,path):
tup=()
for X in l:
u=X[0].reshape(784*9)
v=X[2]*np.ones(1)
w=np.concatenate((u,X[1],v))
tup+=(w,)
L=np.row_stack(tup)
df=pd.DataFrame(L)
df.to_csv(path)
def load_l(path):
df=pd.read_csv(path)
L=df.values
l=[]
for v in L:
tup=()
for i in range(784):
tup+=(v[9*i+1:9*(i+1)+1],)
T=np.row_stack(tup)
Q=v[9*784+1:10*784+1]
i=v[7841]
l.append((T,Q,i))
return(l)
您遇到的問題可能是由於在保存和加載過程中缺少 .csv 文件保護。
確保您的文件被鎖定直到所有數據完全保存/加載的好方法是使用上下文管理器。 這樣,即使您的系統因任何原因停止執行,您也不會丟失任何數據,因為所有結果都在它們可用的那一刻保存。
我建議使用with
-語句,其主要用途是對內部使用的對象(在這種情況下是您的 .csv)進行異常安全的清理。 換句話說, with 確保關閉文件、釋放鎖、恢復上下文等。
with open("myfile.csv", "a") as reference: # Drop to csv w/ context manager
df.to_csv(reference, sep = ",", index = False) # Same goes for read_csv
# As soon as you are here, reference is closed
如果您嘗試此操作但仍然看到您的錯誤,則不是由於保存/加載問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.