python numpy.irr()不能使用超过35个值

python numpy.irr()不能使用超过35个值,python,windows,numpy,Python,Windows,Numpy,使用np.irr()函数时,35个值似乎有效 np.irr([-100.0] + ([25]*35)) 但是35 vaues关闭了python np.irr([-100.0] + ([25]*36)) 关闭python 我已经在windows上用1.10.4/Python 2.7.3 32位进行了测试,即使使用更大的列表(3000个项目!)也无法复制崩溃,但是我确实注意到Process Explorer中Python的RAM使用率正在飙升 这是有意义的,因为[25]*36正在分配该长度的列表

使用
np.irr()
函数时,35个值似乎有效

np.irr([-100.0] + ([25]*35))
但是35 vaues关闭了python

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


我已经在windows上用1.10.4/Python 2.7.3 32位进行了测试,即使使用更大的列表(3000个项目!)也无法复制崩溃,但是我确实注意到Process Explorer中Python的RAM使用率正在飙升

这是有意义的,因为[25]*36正在分配该长度的列表,然后将其传递给fn,计算,然后返回。似乎.irr不支持生成器作为输入,如果您要在非常大的iterables上尝试这种类型的函数,这有点烦人。在fn完成后,Numpy似乎没有释放此处使用的所有内存,这也可能导致问题

在Anaconda上,能否指定Numpy是否使用“英特尔数学内核库”(MKL)构建?这是一个在本地构建的选项,我确实选择了这个。我的理解是MKL用于多核优化。编译依赖项(如DLL)中的错误可能会在进程完全崩溃时表现出来,类似于您看到的情况


很抱歉,这是作为回答发布的(应该是评论,但由于声誉<50,我还不能评论)。

我无法在mac上复制,因此我添加了一个
windows
标签。您使用的是哪个版本的numpy/python?python 2.7.9::Anaconda 2.2.0(64位)