簡體   English   中英

Python酸洗錯誤:TypeError:對象酸洗未返回列表。 numpy有問題嗎?

[英]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.

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