簡體   English   中英

序列化numpy數組的元組

[英]Serialize a tuple of numpy arrays

我有幾個numpy矩陣(確切地說是3維)存儲在元組中

(a1,b1,c1)
(a2,b2,c2)
...
(an,bn,cn)

我想將每個元組序列化為一個文件,可以在另一台機器上讀回Python(Linux => Windows,兩者都是x86-64)。 什么是pythonic方法來實現這一目標?

numpy.savez或numpy.savez_compressed是要走的路。 我聽說過,但從來沒有遇到某些類型的陣列沒有酸洗的問題。

我回憶起這篇文章(似乎沒有太多問題)以及關於numpy.void 沒有酸洗的事情。 可能不是問題,但確實如此。

Pickle可能會運作良好

我也看到了這個: http//thsant.blogspot.com/2007/11/saving-numpy-arrays-which-is-fastest.html

使用shelvepicklecPickleshove 每個都可以讓你將大多數類型的python對象存儲在一個文件中; shoveshelve專注於將鍵映射到值的類字典對象,並且shove將允許您使用各種類似數據庫的后端。 如果您發現自己超出了這些庫的性能限制,請考慮使用數據庫路由,例如通過SQLAlchemy

我已經使用了這些庫中的每一個,並且它們在自己的利基中工作得相當好。 我會從pickleshelve開始,這是標准庫。

我通常使用cPickle ,雖然我沒有與其他方法進行正式比較。 另外,我總是把文件寫成二進制文件並使用最高協議設置:

f = open('fname.pkl','wb')
cPickle.dump(array_tuple,f,-1)
f.close()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM