簡體   English   中英

python numpy.irr()不適用於超過35個值

[英]python numpy.irr() will not work with more than 35 values

使用np.irr()函數時,似乎可以使用35個值

np.irr([-100.0] + ([25]*35))

但是35個vaues關閉了python。

np.irr([-100.0] + ([25]*36))

關閉python

屏幕截圖

我已經在Windows上使用32位1.10.4 / Python 2.7.3在Windows上進行了測試,即使使用更大的列表(3000個項!)也無法復制崩潰,但是我確實通過Process Explorer注意到Python的RAM使用率正在飆升。

這很有意義,因為[25] * 36正在分配該長度的列表,然后將其傳遞給fn,進行計算,然后返回。 看來.irr不支持將生成器作為輸入,如果要在非常大的可迭代對象上嘗試這種類型的功能,這會有些煩人。 在fn完成后,Numpy似乎並沒有釋放這里使用的所有內存,這也可能引起問題。

在Anaconda上,您可以指定Numpy是否使用Intel Math Kernel Library(MKL)構建嗎? 這是在本地構建的選項,我確實選擇了它。 我的理解是MKL用於優化多核。 編譯后的依賴項(如DLL)中的錯誤可能表現為類似於您所看到的過程的完全崩潰。

抱歉,這是作為答案發布的(應該是評論,但由於<50名聲而無法發表評論)。

暫無
暫無

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

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