![](/img/trans.png)
[英]Python pickling error: TypeError: object pickle not returning list
[英]Python pickling error: TypeError: object pickle not returning list. Issue with numpy?
我編寫了一個腳本,該腳本會進行一些數據處理,然后在執行更多處理之前先對結果進行腌制,這樣我就可以弄亂用於繪制的最終參數。 我正在腌制我創建的兩個類的列表。 對每個列表進行酸洗都可以,但是對一個列表進行酸洗則會返回以下錯誤:
Traceback (most recent call last):
File "script.py", line 980, in <module>
main()
File "script.py", line 956, in promoter_main
open(os.path.join(pickle_dir, 'doublep.pickle'), 'rb'))
File "/usr/lib/python2.6/pickle.py", line 1370, in load
return Unpickler(file).load()
File "/usr/lib/python2.6/pickle.py", line 858, in load
dispatch[key](self)
File "/usr/lib/python2.6/pickle.py", line 1217, in load_build
setstate(state)
File "/home/jmerkin/software/numpy/numpy/ma/core.py", line 5468, in __setstate__
ndarray.__setstate__(self, (shp, typ, isf, raw))
TypeError: object pickle not returning list
就像我說的,一個很好(SingleP的實例列表),另一個在取消拾取時給我這個錯誤(DoubleP的實例)。 我猶豫要為該類發布整個代碼,因為它很長,但是基本上,它有幾個填充某些屬性的方法。 這些屬性包括布爾值,元組列表,字符串,整數或numpy.ma.arrays列表。 其中一些數組已屏蔽numpy.nan。
這似乎是一個潛在的相關問題: http : //projects.scipy.org/numpy/ticket/897 。 在這種情況下,問題在於將np.object作為數組的dtype。 但是,我一直在腌制和拆開numpy.ma.arrays,包括屏蔽了numpy.nan的數組,已經有一段時間了。
我會因為腌制而錯過一些愚蠢的東西嗎? 在腌制和嘗試腌制之間,我不會更改該對象。
我重寫了代碼的一部分,以便與其將nxmxl維數組作為某些屬性,不如將它包含一個具有n個條目的列表,每個條目都是一個mxl數組,現在它很高興,並且可以腌制和去漬。 我很困惑,但它運行。 我不會關閉此問題,因為我的問題仍然存在,為什么我會收到該錯誤?
遇到了一個非常相似的問題:我重寫了腳本,以使np.nan值也被屏蔽(我希望numpy,scipy和matplotlib可以始終如一地處理數組),但這導致pickle.load()
。 我擺脫了遮罩的陣列,一切又恢復了。 解決的方法似乎是添加和刪除蒙版,請腌制。 我知道解決方案不多,但似乎可行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.