2010-08-26 108 views
0

我以前從未見過這個錯誤,並且Google上的所有匹配似乎都不適用。我有一個非常大的NumPy數組,它擁有布爾值。當我嘗試使用numpy.dump()寫數組,我得到以下錯誤:Python/Numpy錯誤:在PyObject_Call中沒有錯誤的NULL結果

關於SystemError:NULL結果沒有錯誤PyObject_Call

數組初始化所有假值,而唯一的一次我曾經訪問它的一些值設置爲真,所以我不知道爲什麼任何值將爲空。

當我嘗試使用較小的數組運行相同的程序時,我得不到任何錯誤。但是,由於在編寫步驟中發生的錯誤是,所以我不認爲這是內存問題。有沒有人看過這個錯誤?

+0

我試着做同樣的事情,但還是找不到錯誤。你能發佈一個示例代碼嗎?你在用dtype = bool嗎?另外,Numpy和Python的版本是什麼? – 2010-08-26 17:41:53

回答

1

看來,這可能是使用32位版本的NumPy而不是64位的錯誤。無論出於何種原因,儘管程序將數組保存在內存中並沒有問題,但如果數組中元素的數量大於2^32,則在將數組寫入文件時會跳起來。

1

該消息直接來自CPython解釋器(請參閱abstract.c方法PyObject_Call)。您可能會在Python或NumPy郵件列表上獲得關於該錯誤消息的更好回覆,因爲它看起來像是C代碼中的問題。

寫一個簡單的例子來演示這個問題,你應該能夠把問題縮小到一個模塊,然後是一個方法。

+0

是的,這是一個錯誤。 – jwp 2010-08-26 16:32:38