安装nimfa(Python矩阵分解库)时出现问题

2024-06-16 10:36:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个大的(~25000x1000)矩阵要分解。我基于numpy编写了自己的代码,但是效率低下,并且不断抛出内存错误。在

我一直在尝试安装和使用nimfa(http://nimfa.biolab.si/),安装过程(尝试过easy_install、pip和下载并运行git)没有显示任何错误。但是当我试图使用import nimfa调用它时,我得到了下面的错误。我检查了nimfa的先决条件,除了numpy和scipy之外,没有提到任何东西。在

我在Windows8上,使用安装了numpy和scipy的Python2.7.5。我还尝试过安装(并随后卸载)minGW并执行此操作。在

有什么想法吗?在

Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    import nimfa
  File "C:\Python27\lib\site-packages\nimfa-1.0-py2.7.egg\nimfa\__init__.py", line 18, in    <module>
    from mf_run import *
  File "C:\Python27\lib\site-packages\nimfa-1.0-py2.7.egg\nimfa\mf_run.py", line 26, in <module>
    from utils import *
  File "C:\Python27\lib\site-packages\nimfa-1.0-py2.7.egg\nimfa\utils\__init__.py", line 8, in <module>
    import linalg
  File "C:\Python27\lib\site-packages\nimfa-1.0-py2.7.egg\nimfa\utils\linalg.py", line 15, in <module>
    import scipy.sparse.linalg as sla
  File "C:\Python27\lib\site-packages\scipy\sparse\linalg\__init__.py", line 100, in <module>
    from .isolve import *
  File "C:\Python27\lib\site-packages\scipy\sparse\linalg\isolve\__init__.py", line 6, in <module>
    from .iterative import *
  File "C:\Python27\lib\site-packages\scipy\sparse\linalg\isolve\iterative.py", line 7, in <module>
    from . import _iterative
ImportError: DLL load failed: The specified module could not be found.`

Tags: infrompyimportegglibpackagesline
1条回答
网友
1楼 · 发布于 2024-06-16 10:36:43

如果您的目的是对矩阵进行因式分解,而不是使用nimfa来进行分解,那么我建议使用^{}。Dask被设计成可以在磁盘上而不是在内存中的数据对象上完成操作,只需对代码进行最小的更改。一个有效的例子:

import dask.array as da
import numpy as np
import dask

mtx = da.from_array(np.random.normal(size=(25000, 1000)), chunks=(250, 20))

q, r = np.linalg.qr(mtx)

您可能需要调整chunks参数以适应您的计算资源(请参阅FAQs获取有关建议)。在

相关问题 更多 >