安装 nimfa(Python 矩阵分解库)时出现问题
Posted
技术标签:
【中文标题】安装 nimfa(Python 矩阵分解库)时出现问题【英文标题】:Problems installing nimfa (Python Matrix Factorization library) 【发布时间】:2013-07-23 14:53:16 【问题描述】:我有一个大 (~25000 x 1000) 矩阵要分解。我基于 numpy 编写了自己的代码,但它效率低下并且不断抛出内存错误。
我一直在尝试安装和使用 nimfa (http://nimfa.biolab.si/),安装过程(尝试过 easy_install、pip 以及下载和运行 git)没有显示任何错误。但是当我尝试使用import nimfa
调用它时,我收到以下错误。我检查了 nimfa 先决条件,除了 numpy 和 scipy 之外,它没有提到任何内容。
我在 Windows 8 上,使用安装了 numpy 和 scipy 的 Python 2.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.`
【问题讨论】:
你检查过Python解释器中的语句import scipy.sparse.linalg
是否给出了同样的错误?
【参考方案1】:
如果您的目的是分解矩阵而不是使用nimfa
来执行此操作,我建议您改用dask
。 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 以获取相关建议)。
【讨论】:
以上是关于安装 nimfa(Python 矩阵分解库)时出现问题的主要内容,如果未能解决你的问题,请参考以下文章
在 Windows 上安装 Fabric(Python 库)时出现“错误:无法找到 vcvarsall.bat”[重复]