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

标签 python numpy matrix scipy matrix-factorization

我有一个大的 (~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.`

最佳答案

如果您的目的是分解矩阵而不是使用 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)。

关于python - 安装 nimfa 时出现问题(Python 矩阵分解库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17828782/

相关文章:

python - 应用函数后从两个列表创建字典

Python请求创建Cookie失败

python - 如何在 python 中保存来自 selenium 和 opencv 的部分屏幕截图

c - 如何在C中显示矩阵

python - NodeJS 应用程序无法从 Python shell 获取输入

python - 在保持最小频率的同时减小集合大小

python - 通过使用 NumPy/SciPy 检测向量的局部最大值来提取直方图模式

python - 使用 PolynomialFeatures 将多项式拟合到 3D 点云

python - 为什么我在 Sage 中遇到 "large"矩阵的问题?

java - Java 中的稀疏矩阵乘法